Introdução à Linguagem C

Documentos relacionados
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

3. Linguagem de Programação C

Programação Estruturada

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Introdução à Computação MAC0110

Linguagens de Programação I

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Aula 03 - Linguagem C

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS

Princípios de Desenvolvimento de Algoritmos MAC122

INTRODUÇÃO A LINGUAGEM C

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Introdução à Linguagem C

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução a Programação de Jogos

Utilização da Linguagem C

A linguagem C (visão histórica)

Algoritmos e Programação

Introdução à Programação

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

A Linguagem C. A forma de um programa em C

Revisão Linguagem C Parte 1

Revisão C++ - Parte 1

Tópicos em C. Eliade F. Lima

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem C Princípios Básicos (parte 1)

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Métodos Computacionais

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem de Programação C

Curso de C. Declaração de Variáveis 18/3/ :48 1

4. Estruturas Fundamentais de Programação em C

1. Revisão de Vetores, Ponteiros, Funções e Estruturas em C

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Apostila de Linguagem C (Versão Incompleta)

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Introdução à Linguagem C Variáveis e Expressões

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Linguagem C: Introdução

RESUMO DE CONCEITOS BÁSICOS DE C

3. Linguagem de Programação C

Conhecendo a Linguagem de Programação C

Linguagem C. André Tavares da Silva.

Conceitos Básicos de C

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Linguagens de Programação

Introdução à Ciência da Computação scc-120

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Programação II. Introdução à Linguagem C

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

K&R: Capitulo 2 IAED, 2012/2013

Introdução à Ciência da Computação

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Linguagem de Programação C

CCO 016 / COM 110 Fundamentos de Programação

Conceitos básicos de programação

Programação científica C++

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

ECT1203 Linguagem de Programação

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Programação de Computadores II

Programação de Computadores

Introdução à Programação

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução a Computação

Aula 03: Introdução a C

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução a Linguagem C

Linguagem C para Microcontroladores

Programação I A Linguagem C. Prof. Carlos Alberto

Prof. Marcelo Machado Cunha Faculdade Pio Décimo

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

4 Variáveis. Unesp Campus de Guaratinguetá

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Introdução à Programação C. Introdução à Ciência da Computação I Prof. Jó Ueyama

6 Alguns conceitos e comandos em programação

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Transcrição:

Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida por Martin Richards B inventada por Ken Thompson Vários sistemas operacionais, compiladores são escritos em C O padrão era dado pelo livro de Ritchie Hoje existe um padrão ANSI para C 13/03/2006 2 1

Características gerais Linguagem de finalidade geral Nível médio combina alto nível com baixo nível» permite a manipulação direta de bits, bytes, palavras e apontadores possui apenas 28 palavras reservadas Estruturada Linguagem para programadores for(;p("\n"),r-;p(" "))for(e=c;e- ;P("_"+(*u++/8)%2))P(" "+(*u/4)%2); 13/03/2006 3 Características Possui modernos fluxos de controle e estruturas de dados e, um rico conjunto de operadores Possui apenas 28 palavras-chaves (reservadas) Permite economia de expressão e gera códigos reduzidos Permite estruturar o software em módulos, arquivos fontes, bibliotecas É facilmente transportável (ANSI C) Possui alocação dinâmica de memória Permite recursividade 13/03/2006 4 2

Críticas Dá-se muita liberdade ao programador Programas ininteligíveis, acesso direto a memória Não permite o aninhamento de funções Não há verificação de tipos e nem de limites de arranjos (arrays) Simplifica o design do compilador C O uso de apontadores pode se tornar muito confuso Mensagens de erro muito vagas ( limitação do compilador ) Constatação: não possui muitas facilidades para tratamento de arquivos 13/03/2006 5 O programa C Consiste de uma (main) ou mais funções Um programa começa a ser executado no início da função main ( ), que invocará as demais funções A comunicação entre as funções é feita através da passagem de argumentos e/ou variáveis globais 13/03/2006 6 3

Hello World #include <stdio.h> main() {printf ( Hello World ); } { Em pascal} Program Hello(input, output) begin write ( Hello World ); end. 13/03/2006 7 Tipos de arquivos Arquivos fonte *.c (programa) o código propriamente dito Arquivos fonte *.h (header = cabeçalho) exemplos: stdio.h, math.h contém declarações de tipos e protótipos de funções 13/03/2006 8 4

Bibliotecas C é uma linguagem minimalista A maior parte da funcionalidade é dada por bibliotecas São utilizadas para facilitar o desenvolvimento de software Por exemplo, stdlib.a é sempre incluída em todos os programas C por default 13/03/2006 9 Palavras reservadas auto break case char continue default do double else entry extern float for goto if int long register return short sizeof static struct switch typedef union unsigned while 13/03/2006 10 5

Variáveis e Constantes - Tipos e Declarações Declaração deve vir antes do uso Os nomes das variáveis são constituídos de letras e dígitos, onde o primeiro caractere é uma letra Há diferença entre letras maiúsculas e minúsculas Uso de letras maiúsculas para constantes (convenção) 13/03/2006 11 Tipos de dados char int short, long, unsigned float double void 13/03/2006 12 6

Tamanho dos dados arquitetura de 16 bits Tipo Tamanho em Bits Intervalo char 8-127 à 127 unsigned char 8 0 à 255 signed char 8-127 à 127 int 16-32.767 à 32.767 unsigned int 16 0 à 65.535 signed int 16 Igual a int short int 16 Igual a int unsigned short int 8 0 à 65.535 signed short int 8 Igual a short int long int 32-2.147.483.647 à 2.147.483.647 unsigned long int 32 0 à 4.294.967.295 signed long int 32 Igual a long int float 32 Seis dígitos de precisão double 64 Dez dígitos de precisão long double 128 Dez dígitos de precisão 13/03/2006 13 Identificadores Usados para definir nomes de variáveis, funções, rótulos (labels), etc. Consiste de um ou mais caracteres, o primeiro caracter deve ser letra ou _, os demais devem ser letras, ou números ou _ Pode ter qualquer tamanho, 6 primeiros caracteres são usados como nomes externos 31 primeiros caracteres para nomes internos 13/03/2006 14 7

Exemplos de identificadores Correto contador test123 sala_de_aula Incorreto 1contador ola!turma sala-de-aula 13/03/2006 15 Variáveis É uma posição da memória, identificada por um nome (identificador), usada para guardar um valor que poderá ser usado, modificado pelo programa Todas as variáveis devem ser declaradas Uma declaração consiste de um tipo (adicionado de algum qualificador) e de uma lista de variáveis (separadas por vírgula) que sejam deste tipo 13/03/2006 16 8

Exemplo de variáveis int i, j, k l,m; float salario, preco, desconto; char nome [30]; short int valor = 0; char letra; unsigned int idade; 13/03/2006 17 Escopo de declaração das variáveis Locais declaradas dentro de funções Globais declaradas fora das funções Parâmetros das funções definição de parâmetros de funções 13/03/2006 18 9

Tipos de armazenamento de variáveis extern static register auto (default) 13/03/2006 19 Exemplo do uso de extern /* arquivo exp.c*/ int ap = 0; double val[30];...... /* arquivo imp.c*/ extern int ap; extern double val[];...... 13/03/2006 20 10

Exemplo do uso de static int minhafuncao(int val) { static int nrovezesexec = 0; nrovezesexec ++; return (val + 10); } 13/03/2006 21 Constantes Valores fixos que não podem ser alterados #define MAX 100 #define PI 3.14 13/03/2006 22 11

Operadores Atribuição aritméticos relacionais lógicos manipulação de bits (bitwise) especiais 13/03/2006 23 Atribuição pode ser usado em qualquer expressão válida em C Forma geral:» nome-da variavel = expressao ; O nome-da-variavel deve ser uma variável simples ou um ponteiro Múltiplas atribuições são permitidas x = y = z = 0; 13/03/2006 24 12

Operadores aritméticos Operador Prioridade Ação - 3 (1) subtração ( unário ) + 3 adição * 2 multiplicação / 2 divisão % 2 resto da divisão (só para int) -- 1 decrementa ++ 1 incrementa 13/03/2006 25 Exemplos x = x + 1; ++x; x = x -1; x--; x = 10; y = ++x; y = 11 x = 10; y = x++; y = 10 13/03/2006 26 13

Operadores relacionais Operador Prioridade Ação > 4 maior que > = 4 maior ou igual que < 4 menor que < = 4 menor ou igual que = = 5 igual! = 5 diferente 13/03/2006 27 Operadores lógicos Operador Prioridade Ação && 6 e 7 ou! 1 não 13/03/2006 28 14

Operadores para manipulação de bits (inteiros e caracteres) Operador Ação & e ou ^ ou exclusivo ~ complemento de 1 >> deslocamento à esquerda << deslocamento à direita 13/03/2006 29 O operador? Forma geral: Exp1? Exp2 : Exp3 Ex: x = 10; y = x > 9? 100 : 200; y receberá o valor 100 13/03/2006 30 15

Os operadores & e * para ponteiros & fornece o endereço de uma variável * fornece o conteúdo de um ponteiro Ponteiros podem ser usados para: acesso rápido a elementos de arranjos; modificar os parâmetros de chamada de uma função; e acesso a estruturas dinâmicas 13/03/2006 31 Exemplo Int contador, q, * m; contador = 9; m = &contador;/*m recebe o endereço de contador*/ q = *m; /*q recebe o valor que está armazenado no endereço de m (9)*/ 13/03/2006 32 16

Comandos de Controle Todo comando em C termina com ; seleção iteração desvio rótulo (label) expressão bloco 13/03/2006 33 Seleção: if Forma Geral: if (expressão) comando; else comando; 13/03/2006 34 17

Seleção: switch Forma Geral:» switch (expressão) {» case constante1:» comando(s)» break;» case constante2:» comando(s)» break;»...» default:» comando(s)» } 13/03/2006 35 Iteração: for For (expressao_1;/*inicio*/ expressao_2; /*parada*/ expressao_3)/*incremento*/ Loop infinito: for (; ;) comando; for sem corpo: for ( t=0; t < VALOR; t++); 13/03/2006 36 18

Iteração: while e do-while Forma Geral: while (condição)» comando; Forma Geral: do {» comando(s) ; } while (condição); 13/03/2006 37 Desvio return» Forma Geral: return expressão; (opcional) goto» Forma Geral: goto label;»...» label: comando; break» Forma Geral: break; 13/03/2006 38 19

Expressões Qualquer expressão válida em C seguida de um ; func ( ); /* chamada de funcao */ a = b + c; /* comando de atribuicao */ ; /* comando nulo */ 13/03/2006 39 Bloco de comandos: {} Comandos agrupados que são tratados como uma unidade Ex: main () { printf( programa em C\n ); } 13/03/2006 40 20

Arranjos (arrays) Coleção de variáveis do mesmo tipo referenciadas por um só nome. Um elemento específico num arranjo é localizado por um índice ou mais Podem ter de 1 a N dimensões Pode-se declarar arranjos de quaisquer tipos de dados Os índices começam sempre de 0 C não faz testes para os limites de um arranjo 13/03/2006 41 Arranjos multi-dimensionais Arranjos com várias dimensões são declarados colocando-se a dimensão adicional dentro de outro par de colchetes Ex: float matriz [2] [2]; 13/03/2006 42 21

Strings Não existe o tipo String São arranjos de caracteres Terminam com o caracter nulo ( \0 ) Ex: char s [11]; s pode armazenar 10 caracteres s [10] deve ser o caracter null ( \0 ) 13/03/2006 43 Funções de String Nome Função strcpy (s1, s2) copia s2 em s1 strcat (s1, s2) concatena s2 no fim de s1 strlen (s1) retorna o tamanho de s1 strcmp (s1, s2) retorna 0 se s1 e s2 forem do mesmo tamanho retorna < 0 se s1 < s2 retorna > 0 se s1 > s2 strchr (s1, ch) retorna um ponteiro para o primeiro caracter de ch em s1 strstr (s1, s2) retorna um ponteiro para a primeira ocorrência de s2 em s1 13/03/2006 44 22

Estruturas coleção de uma ou mais variáveis que podem ser de tipos diferentes e que passam a ser referenciadas por um único nome Forma Geral: struct tag {.. tipo nome-da variavel; tipo nome-da variavel; tipo nome-da variavel;. } variaveis-estruturas; 13/03/2006 45 Exemplo de estrutura Struct funcionario { int matricula; char nome [30]; }; float salario; struct funcionario fun1; fun1.matricula = 1546; 13/03/2006 46 23

Exemplo de um programa /* imprimir a tabela de conversão Fahrenheit-Celsius para f = 0, 20,..., 300 */ #define INICIO 0/*limite inferior da tabela*/ #define FIM 300 /*limite superior*/ #define INCR 20 /* incremento */ main( ) {int fahr; for (fahr = INICIO; fahr <= FIM; fahr += INCR) printf( %4.0f %6.1f\n,fahr,(5.0/9.0)*(fahr - 32));} 13/03/2006 47 Funções Funções dividem grandes tarefas de computação em partes menores e simples Um programa é estruturado como um conjunto de definições individuais de funções O programa fonte pode ser dividido em arquivos múltiplos 13/03/2006 48 24

Funções em C Comunicação feita por argumentos e valores retornados O return define um mecanismo para retornar um valor de uma função chamada para a sua chamadora As funções podem ocorrer em qualquer ordem no arquivo fonte C permite que declaremos o tipo que uma função irá retornar 13/03/2006 49 Exemplo de passagem de parâmetro struct exemplo { char x; int y; } ex; func1 (ex.x); Passagem do endereço Ex: func2 (&ex.x); Passagem de uma Estrutura por referência» func3 (&ex); 13/03/2006 50 25

Entrada e saída As funções de entrada e saída estão definidas no arquivo header stdio.h A Função Printf Permite a impressão de quantidades numéricas, strings, caracteres, etc.» Forma Geral: printf (controle, arg1, arg2,... ) 13/03/2006 51 Escapes de formatação Formato Significado %c caracter %d inteiro decimal com sinal %i inteiro decimal com sinal %e notação científica com e %E notação científica com E %f ponto flutuante decimal %g escolhe %e ou %f,o menor dos dois formatos %G escolhe %E ou %f,o menor dos dois formatos %o octal %p imprime o endereço de um ponteiro %s cadeia de caracteres %u inteiro decimal sem sinal %x hexadecimal sem sinal (letras minúsculas) %X hexadecimal sem sinal (letras maiúsculas) %% imprime o caracter % 13/03/2006 52 26

A função scanf Usada para a entrada (leitura) de dados Forma Geral:» scanf ( controle, arg1, arg2,...) 13/03/2006 53 Exemplo do uso de scanf } #include <stdio.h> main ( ) /* calculadora elementar */ { double soma, v; soma = 0; while (scanf ( %lf, &v)!= EOF) printf ( \t%.2f\n, soma += v); 13/03/2006 54 27