LINGUAGEM DE PROGRAMAÇÃO C. Introdução a. Material cedido pela Profa. Judith Kelner do Centro de Informática da UFPE

Tamanho: px
Começar a partir da página:

Download "LINGUAGEM DE PROGRAMAÇÃO C. Introdução a. Material cedido pela Profa. Judith Kelner do Centro de Informática da UFPE"

Transcrição

1 1 Introdução a LINGUAGEM DE PROGRAMAÇÃO C Material cedido pela Profa. Judith Kelner do Centro de Informática da UFPE

2 2 HISTÓRICO 5 CARACTERÍSTICAS 6 CRÍTICAS 7 PROGRAMA EM C 8 TIPOS DE ARQUIVOS FONTES EM C 8 BIBLIOTECAS EM C 8 PALAVRAS CHAVES 9 VARIÁVEIS E CONSTANTES - TIPOS E DECLARAÇÕES 9 TIPOS DE DADOS 11 A NORMA ANSI C 11 IDENTIFICADORES 12 VARIÁVEIS 13 Onde declarar variáveis 13 PARÂMETROS FORMAIS 14 VARIÁVEIS GLOBAIS 15 ESPECIFICADORES DE TIPOS DE ARMAZENAMENTO DEVARIÁVEIS 16 CONSTANTES 18 COMANDOS DE CONTROLE 27

3 3 COMANDO DE ITERAÇÃO 29 COMANDO DE DESVIO 30 ARRANJOS 34 ESTRUTURAS 40 UNIÕES 41 EXEMPLOS: 41 F U N Ç Õ E S 46 USO DE FUNÇÕES 47 FUNÇÕES EM C 47 PASSAGEM DE ESTRUTURAS PARA FUNÇÕES 47 EXEMPLOS DO USO DE FUNÇÕES 49 UTILIZAÇÃO DE PARÂMETROS 50 FUNÇÕES DE ENTRADA E SAÍDA 51 A P O N T A D O R E S ( P O I N T E R S ) 56 APONTADORES 57 APONTADORES E ARGUMENTOS DE FUNÇÕES 58 APONTADORES E ARRANJOS 59 ARITMÉTICA COM ENDEREÇOS 59 APONTADORES DE CARACTERE E FUNÇÕES 60

4 4 APONTADORES PARA FUNÇÕES 61 APONTADORES PARA ESTRUTURAS 62 FUNÇÃO PARA ABRIR E FECHAR ARQUIVOS 63 LEITURA E GRAVAÇÃO EM ARQUIVOS 63 EXEMPLOS 64 O PREPROCESSADOR C 65

5 5 Histórico BCPL B C Projetada por Dennis Ritchie para ser implementada no sistema operacional Unix Evolução: O Unix e os programas de aplicação implementados em C Linguagem de Implementação de vários sistemas operacionais, interpretadores, editores, compiladores, software de comunicação, etc.

6 6 Características Linguagem de programação de finalidade geral É uma linguagem que combina o alto nível com o baixo nível permite a manipulação direta de bits, bytes, palavras e apontadores Possui modernos fluxos de controle e estruturas de dados e, ainda, 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) Alocação dinâmica de memória C permite recursividade O uso da recursividade torna-se inviável quando o tempo ou o espaço da memória forem críticos

7 7 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 Simplifica o design do compilador C O uso de apontadores pode se tornar muito confuso Mensagens de erro muito vagas ( limitação do compilador ) Alguns comandos não podem ser definidos semanticamente Constatação: não possui muitas facilidades para tratamento de arquivos

8 8 Programa em 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 Tipos de Arquivos Fontes em C Arquivos fonte *.c Arquivos fonte *.h (stdio.h, math.h) Bibliotecas em C São utilizadas para facilitar o desenvolvimento de software Por exemplo, stdlib.a é sempre incluída em todos os programas C por default

9 9 Palavras Chaves São sempre escritas com letras minúsculas auto break case char continue default do double else entry extern float for goto if int long register return short szeof satic struct switch typedef union unsigned while 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)

10 10 L I N G U A G E M C T I P OS D E D A D O S

11 11 Tipos de Dados char int float double void - tipo caractere (normalmente um byte) - tipo inteiro (tamanho natural de inteiro na máquina 2 bytes ) - tipo ponto flutuante de precisão simples (1e-37 até 1e+37) - tipo ponto flutuante de precisão dupla - tipo explicíto para funções ou ponteiros (será visto a posterior) Qualificadores para o tipo inteiro short long unsigned A Norma ANSI C Diferentes compiladores C para diferentes arquitetura de hardware define tamanhos diferentes para o armazenamento dos tipos de dados da Linguagem C Isto poderá gerar problemas de portabilidade dos fontes Definição da norma ANSI C

12 12 Tipo Tamanho em Bits Intervalo char à 127 unsigned char 8 0 à 255 signed char à 127 int à unsigned int 16 0 à signed int 16 Igual a int short int 16 Igual a int unsigned short int 8 0 à signed short int 8 Igual a short int long int à unsigned long int 32 0 à 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 Identificadores Todos os tipos de dados defenidos pelo padrão ANSI 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, os 6 primeiros caracteres devem ser significativos para serem usados como nomes externos, e os 31 primeiros caracteres para nomes internos Correto contador test123 sala_de_aula Incorreto 1contador ola!turma sala-de-aula

13 13 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 em C devem ser declaradas Uma declaração consiste de um tipo (adcionado de algum qualificador) e de uma lista de variáveis (separadas por vírgula) que sejam deste tipo Ex: int soma, total; double fact; char carac, ch; unsigned int idade; short int valor; C não inicializa as variáveis Variáveis podem ser inicializadas quando declaradas Onde declarar variáveis Ex: int eh_zero = 0, num_max = 5000; float pi = , eps = 1.0e-5; dentro de funções variáveis locais definição dos parâmetros das funções parâmetros formais fora das funções variáveis globais

14 14 Variáveis Locais Só pode ser referenciada dentro do bloco na qual foi definida, são criadas após a sua definição e são destruídas após a saída do bloco Um bloco é identificado por um par de chaves no ínicio e no fim, no máximo um bloco representa uma função Variáveis podem ser definidas em qualquer parte do bloco, normalmente as variáveis são definidas logo no início de uma função ( a variável local só pode ser referenciada depois de ter sido definida) Parâmetros Formais São usados para definir os argumentos de uma função Comportamento igual ao de uma variável local Lista de identificadores, separados por vírgula, após o nome da função entre parenteses Deve-se definir os parâmetros e o tipo deles deve ser o mesmo definido para os argumentos usados na chamada da função ( o compilador não verifica isto)

15 15 Variáveis Globais Diferem das variáveis locais por poderem ser usadas em qualquer parte do código Existem durante todo o ciclo de vida do programa (ocupa memória) Normalmente são declaradas no ínicio do programa e/ou em arquivos do tipo header (*.h) Se uma variável local tem o mesmo nome de uma variável global, dentro do bloco no qual foi definido a variável local ela terá prioridade sobre a global Deve-se evitar o uso abusivo de variáveis globais para evitar problemas de limitação de memória e de tempo de execução As variáveis globais só podem ser declaradas uma só vez O Tipo const Variáveis do tipo const não podem ser modificadas pelo programa, entretanto elas podem ser inicializadas quando forem definidas Ex: const int a = 10;

16 16 Especificadores de Tipos de Armazenamento devariáveis extern extern static register auto Permite que dois ou mais arquivos compartilhem as mesmas variáveis globais As variáveis globais só podem ser declaradas uma só vez É um mecanismo para importar variáveis globais definidas em outros arquivos O escopo de uma variável extern vai do ponto em que ela é declarada no arquivo fonte até o fim do mesmo Para variáveis automáticas (locais) e argumentos, o escopo é a função em que o nome é definido Declaração extern é obrigatória em dois casos Declaração é diferente de definição Ex: Arquivo 1: Arquivo 2: int ap = 0; /* apontador */ extern int ap; double val [MAXVAL]: extern double val[ ]; double empil (f)... double desempil ( )...

17 17 static register Quando usado em uma variável local: instrui o compilador a manter a variável local existente durante o tempo de vida do programa (ela só existe no bloco em que foi definida) Quando usado em uma variável global: instrui o compilador a limitar o uso desta variável ao arquivo onde ela foi definida Ex: int contador ( x) char x; static int meucontador = 0; meucontador = meucontador + 1;... usado em variáveis locais do tipo caractere ou inteiro, provê um acesso mais rápido a mesma (pode também ser usado nos parâmetros formais). Em algums implementações utiliza registradores ao invés de memória auto Ex: register int aux; for (aux = 0; aux < 100; aux++)... usado para declarar variáveis locais. É opcional e pouco usado porque é default

18 18 Constantes São valores constantes fixos dentro do programa que não podem ser alterados Tipo de Dado Exemplos int long int 35000L -34L short int unsigned int 10000U 987U float F 4.34e -3F double long double L hexadecimal int hex = 0x80 (128) octal int oct = 012 (10) character a string este e um teste Código Significado \b Espaço \f Alimenta formulário \n Pula linha \r Carriage return \t Tabulação horizontal \ Aspa dupla \ Aspa simples \0 NULL \\ \ \v Tabulação vertical \a Alerta \N Constante octal \xn Constante hexadecimal

19 19 O uso de constantes simbólicas torna o programa mais legível. Geralmente são escritas com letras maiúsculas. O comando define neste exemplo será processado pelo pré-processador do C (cpp) Ex: #define INICIO 0 /* limite inferior da tabela */ int #define GOS 0.1 /* grau de servico eh 10% */ double #define FIM 123L /* limite inferior */ long

20 20 Operadores Atribuição atribuição aritméticos relacionais lógicos manipulação de bits (bitwise) especiais O operador de 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 ou um pointer (para um endereço válido na memória) Múltiplas atribuições Ex: x = y = z = 0;

21 21 Quando tipos diferentes de variáveis são usados ocorre uma conversão de tipos nas seguintes situações (este resultado depende da arquitetura do hardware) Tipo da Variável Tipo da Expressão Possíveis Perdas signed char char Se valor > 127, valor final é negativo char short int 8 bits de mais alta ordem char int 8 bits de mais alta ordem char long int 24 bits de mais alta ordem int long int 16 bits de mais alta ordem int float parte fracionária e talvez mais info float double Precisão, resultado arredondado double long double Precisão, resultado arredondado Conversão de alguns tipos (assumindo uma palavra de 16 bits)

22 22 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 Ex: x = x + 1; ++x; x = x -1; x--; x = 10; y = ++x; y = 11 x = 10; y = x++; y = 10 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

23 23 Operadores Lógicos Operador Prioridade Ação && 6 e 7 ou! 1 não Operadores para Manipulação de Bits (só para int e char) Operador Ação & e ou ^ ou exclusivo ~ complemento de 1 >> deslocamento à esquerda << deslocamento à direita Ex: ch & com paridade & sem paridade ^ (ou) ^ (ou exclusivo)

24 24 char x x depois de cada comando valor de x x = 7; x << 1; x << 3; x << 2; x >> 1; x >> 2; Multiplicação e Divisão através do operador de deslocamento Ex: complemento de 1 ~ Operadores Especiais O operador? Forma geral: Exp1? Exp2 : Exp3 Ex: x = 10; y = x > 9? 100 : 200; Os operadores & e * para pointers (ponteiros) - Um ponteiro é o endereço de uma variável na memória - Uma variável do tipo ponteiro (pointer) pode ser declarada para um tipo específico de dado - Ponteiros podem ser usados para: acesso rápido a elementos de arranjos; modificar os parâmetros de chamad de uma função; e acesso a estruturas dinâmicas Ex: m = &contador; m recebe o endereço de contador q = *m; q recebe o valor que está armazenado no endereço m

25 25 O operador, (vírgula) -Usado para juntar várias expressões Ex: x = ( y = 3, y + 1); Precedência e Ordem de Avaliação A tabela abaixo apresenta um resumo das regras de precedência e de`associatividade de todos os operadores vistos Operador Associatividade ( ) [ ] ->. esquerda para direita! ~ (tipo) * & sizeof direita para esquerda * / % esquerda para direita + - esquerda para direita << >> esquerda para direita > = > < < = esquerda para direita = =! = esquerda para direita & esquerda para direita ^ esquerda para direita esquerda para direita && esquerda para direita esquerda para direita?: direita para esquerda ++ = -= etc. direita para esquerda, esquerda para direita

26 26 L I N G U A G E M C C O M A N D O S D E C O N T R O L E

27 27 Comandos de Controle O ponto-e-virgula (;) é usado como terminador de comandos seleção iteração desvio rótulo (label) expressão bloco Comando de Seleção if Forma Geral: if (expressão) comando; else comando; Num aninhamento, o else é associado ao mais recente if sem else

28 28 switch Forma Geral: switch (expressão) case constante1: comando(s) break; case constante2: comando(s) break;... default: comando(s)

29 29 Comando de Iteração for for (expressao_1; expressao_2; expressao_3) inicialização comando; condição de parada incremento Loop infinito: for (; ;) comando; for sem corpo: for ( t=0; t < VALOR; t++); while Forma Geral: while (condição) comando; do-while Forma Geral: do comando(s) ; while (condição);

30 30 Comando de Desvio return Forma Geral: return expressão; (opcional) goto Forma Geral: goto label;... label: comando; break Forma Geral: break; exit Forma Geral: void exit (int codigo-de-retorno); continue Forma Geral: continue;

31 31 Expressões Qualquer expressão válida em C seguida de um ; Ex: func ( ); /* chamada de funcao */ a = b + c; /* comando de atribuicao */ ; /* comando nulo */ Bloco de Comandos Comandos agrupados que são tratados como uma unidade. Devem estar entre

32 32 Exemplos main () printf( programa em C\n ); main ( ) /* copia entrada na saída */ main( ) int c; int c; c = getchar( ) ; while ((c = getchar( ))!= EOF) while (c!= EOF) putchar(c); putchar (c); c = getchar( ); main() /* teste da funcao de potencia */ int j; for ( j = 0; j < 10; j++) printf ( %d %d %d\n, j, pot(2,j), pot(-3,j)); pot (x, n) int x, n; int j, p; p = 1; for (j = 1; j <= n; ++j) p = p * x; return (p);

33 33 L I G U A G E M C A R R A N J O S

34 34 Arranjos 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 Os arranjos em C podem ter de 1 a N dimensões Pode-se declarar arranjos em quaisquer dos tipos de dados descritos anteriormente Os índices de arranjos começam sempre de 0 C não faz testes para os limites de um arranjo Arranjo Bi-dimensional 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];

35 35 Strings O uso mais comum para os arranjos uni-dimensionais é na declaração de strings (cadeia de caracteres) Em C um string é definido como uma cadeia de caracteres que termina por um caractere null ( \0 ). Portanto quando declarar o arranjo adicione 1 ao tamanho máximo Ex: char s [11]; s pode armazenar 10 caracteres s [10] deve ser o caracter null ( \0 ) Em C não existe o tipo de dados string, porém existe a constante do tipo string Ex: char mensagem = ola a todos ; Funções para Manipulação de Strings Nome strcpy (s1, s2) strcat (s1, s2) strlen (s1) strcmp (s1, s2) strchr (s1, ch) strstr (s1, s2) copia s2 em s1 Função concatena s2 no fim de s1 retorna o tamanho de s1 retorna 0 se s1 e s2 forem do mesmo tamanho retorna < 0 se s1 < s2 retorna > 0 se s1 > s2 retorna um ponteiro para o primeiro caracter de ch em s1 retorna um ponteiro para a primeira ocorrência de s2 em s1 Estas funções operam sobre strings terminados com o caractere null ( \0 )

36 36 Arranjos de strings É só utilizar o bi-dimensional arranjo de caracteres Ex: char str-array [30] [80]; Inicialização de Arranjos Ex: int j[10] = 1, 2, 3, 4, 5, 6, 7, 8, 9; char str [14] = Eu gosto de C ; char str [14] = E, u,, g, o, s, t, o,, d, e,, C, \0 ; Ex: main ( ) int nbranco = 0; int noutro = 0; int c, j, nbranco, noutro; int ndigito[10] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 int ndigito[10]; main ( ) nbranco = noutro = 0; for (j = 0; j < 10; j ++) int c, j; ndigito[j] = 0;......

37 37 Exemplos main () /* conta carac. na entrada */ main () long int nc; double int nc; nc = 0; for (nc = 0; getchar()!= EOF; ++nc) while (getchar ()!= EOF) ; ++nc; printf ( %.0f\n, nc); printf ( %ld\n, nc); main () /* conta digitos, espaco em branco, outros caracteres */ int c, j, nbranco, noutro; int ndigito [10]; nbranco = noutro = 0; for (j = 0; j < 10; ++j) ndigito [j] = 0; while ((c = getchar())!= EOF) if (c >= 0 && c <= 9 ) ++ndigito [c - 0 ]; else if (c == c== \n c == \t ) ++nbranco; else ++noutro; printf ( digitos = ); for (j = 0; j < 10; j++) printf ( %d, ndigito [j]); printf( \nespacos em branco = %d, outros = %d\n, nbranco, noutro);

38 38 Exemplos (continuação) /* exemplo do uso do continue */ for (j = 0; j < N; j++) if (a[j] < 0) /* elementos negativos saltados */ continue;... /* elementos positivos processados */ /* exemplo do uso do goto */ for (j = 0; j < N; j++) for (k = 0; k < M; k++) if (v[j][k] < 0) goto achei; /* nao achei */... achei: /* achei na posicao j, k */

39 39 L I N G U A G E M C E S T R U T U R A S E U N I Õ E S

40 40 Estruturas Pode-se criar combinações de tipos de dados básicos, utilizando struct e union Uma estrutura é uma 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; Ex: struct func struct func int matr; int matr; char nome [40]; char nome [40]; int setor; int setor; float salario; float salario; serv1, serv2; ; struct func serv1, serv2; O operador ponto (.) é usado quando se quer referenciar um elemento individual de uma estrutura Ex: serv1.setor = 2112; serv1.salario = Estruturas admitem aninhamento

41 41 Uniões Uma union é definida quando duas ou mais variáveis compartilham a mesma área de memória Ex: union qualq char ch; int x; aux1; x byte 1 byte 2 Exemplos: struct data static int tab_dia[2][13] = 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 int dia; 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 int mes; ; int ano; int dia_ano; char nome_mes[4]; ; ch dia_do_ano(ad) /* acha o dia do ano a partir do dia do mes */ struct data *ad; int j, dia, bissexto; dia = ad -> dia; bissexto = ad -> ano % 4 = = 0 && ad -> ano % 100! = 0 ad -> ano % 400 = = 0; for ( j = 1; j < ad -> mes; j++) dia = dia + tab_dia[bissexto][j]; return(dia);

42 42 Exemplos (continuação) #define SIM 1 #define NAO 0 main( ) /* conta linhas, palavras, caracteres na entrada */ int c, nl, np, nc, empalavra; empalavra = NAO; nl = np = nc = 0; while ((c = getchar( ) )!= EOF) nc++; if (c = = \n ) nl++; if (c = = c = = \n c = = \t ) empalavra = NAO; else if (empalavra = = NAO) empalavra = SIM; np++; atoi (s) /* funcao que converte um string de números s em um inteiro */ int j, n = 0; for ( j = 0; s[j] >= 0 && s[j] <= 9 ; ++j) return (n); n = 10 * n + s[j] - 0 ;

43 43 Exemplos (continuação) comprime (s, c) /* remove todos os c de s */ char s[ ]; int c; int j, k; for (j = k = 0; s[j]!= \0 ; j++) if (s[j]!= c) s[k++] = s[j]; s[k] = \0 ; contabits (n) /* conta os bits ligados em n */ unsigned n; int b; for (b = 0; n!= 0; n >>= 1) if (n & 01) b++; return (b);

44 44 Exemplos (continuação) pesq-binaria(x, v, n) /* acha x em v[0]... v[n-1] */ int x, v[ ], n; int inicio, fim, meio; inicio = 0; fim = n -1; while (inicio <= fim) meio = (inicio + fim) / 2; if (x < v[meio]) fim = meio - 1; else if (x > v[meio]) inicio = meio + 1; else /* achou */ return(meio); return (-1);

45 45 Exemplos (continuação) /* imprimir a tabela de conversão Fahrenheit-Celsius para f = 0, 20,..., 300 */ main( ) int inicio = 0, /* limite inferior da tabela */ fim = 300, /* limite superior */ incr = 20; /* incremento */ float fahr, celsius; fahr = inicio; while (fahr <= fim) celsius = (5.0 / 9.0) * (fahr ); printf( %4.0f %6.1f\n, fahr, celsius); fahr = fahr + incr; /* 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));

46 46 L I N G U A G E M C F U N Ç Õ E S

47 47 Uso de Funções Funções dividem grandes tarefas de computação em partes menores e simples Um programa é estruturado em C como um conjunto de definições individuais de funções O programa fonte pode ser dividido em arquivos múltiplos 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 A rotina chamadora deve estabelecer que a função chamada retorna um valor não inteiro Por default, o tipo de uma função é int Passagem de Estruturas para Funções Pode se pssar um elemento de uma estrutura por valor Ex: struct exemplo char x; int y; ex; func1 (ex.x);

48 48 Passagem do endereço de um componente Ex: func2 (&ex.x); Passagem de uma Estrutura por referência func3 (&ex);

49 49 Exemplos do uso de Funções double fatorial (num) int num; /* Retorna o fatorial de um numero. Se um erro ocorre, ela retorna o valor -1 e emite uma mensagem */ double aux, fact; if (num < 0) printf ( \n Erro: fatorial de um numero negativo! ); fact = -1.0; else fact = 1.0; for (aux = num; aux > 0: aux --) fact *= aux; return (fact); atoi (s) /* converte um string num inteiro */ char s[ ]; int j, n, sinal; for (j = 0; s[j] == s[j] == \n s[j] == \t ; j++) ; /* pula espacos em branco */ sinal = 1; if (s[j] == + s[j] == - ) /* sinal */ sinal = (s[j++] == + )?1:-1; for (n = 0; s[j] >= 0 && s[j] <= 9 ; j++) n = 10 * n + s[j] - 0 ; return(sinal * n);

50 50 Utilização de Parâmetros A passagem de argumentos pode ser feita por: valor referência (endereço), por exemplo, o endereço de um arranjo As funções em C aceitam um número variável de argumentos (não transportável) As variáveis externas (globais) são definidas fora de qualquer função e ficam disponíveis para qualquer função As funções são sempre externas (não há aninhamento) Deve-se usar variáveis externas quando há um grnde número de funções que fazem uso das mesmas O escopo de um nome é a parte do programa para o qual o nome é definido Para variáveis automáticas (locais) e argumentos, o escopo é a função em que o nome é definido Num programa C deve ter pelo menos a função main ( ) onde começa a execução A função main ( ) tem dois argumentos: argc argv [ ]

51 51 Funções de 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,... ) caracteres ordinários e especificações de conversão ( % ) Entre o % e o caractere de conversão pode haver: sinal de menos cadeia de dígitos (tamanho mínimo) um ponto cadeia de dígitos modificador de tamanho (l) Caracteres de conversão: d, o, x, u, c, s, e, f e g Ex: printf( fatorial de %d = %g\n, num, fatorial(num)); Por default todos os tipos são ajustados à direita, para ajustar à esquerda inclua o caractere -

52 52 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 % Formatos para o comando printf

53 53 Exemplo main ( ) int num; double fatorial; printf ( \n Entre com um numero: ); scanf ( %d, &num); printf ( \n Fatorial de %d %f\n, num, fatorial(num)); double fatorial (x) int x; /* Calcula o fatorial de um numero recursivamente. Retorna um valor negativo se recebe como parametro um numero negativo */ if (x < 0) printf ( \n Erro: fatorial de um numero negativo!!!); return (-1); else if (x == 0) return (1); else return (x * fatorial (x - 1));

54 54 A função Scanf Usada para a entrada (leitura) de dados, para string ler até o primeiro espaço em branco, ou o return, ou o tab. Forma Geral: scanf ( controle, arg1, arg2,...) A cadeia de controle pode conter Devem ser apontadores Análogo ao printf Espaços em branco Caracteres ordinários Especificações de conversão Um número (opcional) especificando o tamanho do campo Caracteres de conversão Caracteres de conversão aceitos: d, o, x, h, c, s e f Ex: Note que a função scanf está usando passagem de parâmetros por referência #include <stdio.h> main ( ) /* calculadora elementar */ double soma, v; soma = 0; while (scanf ( %lf, &v)!= EOF) printf ( \t%.2f\n, soma += v);

55 55 Os caracacteres d, o, x e f podem ser precedidos por l Formato Significado %c lê um caracter %d lê um inteiro decimal com sinal %i lê um inteiro decimal com sinal %e lê um número ponto flutuante %f lê um número ponto flutuante %g lê um número ponto flutuante %o lê um octal %p lê o endereço de um ponteiro %s lê uma cadeia de caracteres %u lê um inteiro sem sinal %x lê um hexadecimal sem sinal Formatos para o comando scanf

56 56 L I N G U A G E M C A P O N T A D O R E S ( P O I N T E R S )

57 57 Apontadores Um apontador é uma variável que contém o endereço de outra variável Levam a um código mais compacto e eficiente (disciplina) É aplicado apenas a variáveis, elementos de arranjos e elementos de estruturas O operador unário & fornece o endereço de um objeto Ex: px = &x; O operador unário * trata seu operando como endereço Ex: y = *px; É necessário haver declaração de tais variáveis Ex: int x, y; int *px; Podem ocorrer em expressões (os operadores * e & têm precedência sobre os demais operadores) Ex: y = *px + 1; * ( px + 1 ) *px = 0; (*px) ++;

58 58 Apontadores e Argumentos de Funções Apontadores são utilizados quando se quer passar valores por referência O programa chamador passa apontadores para as variáveis que se quer atualizar Ex: troca (ax, ay) /* permuta *ax e *ay */ int *ax, *ay; int temp; temp = *ax; *ax = *ay; *ay = temp; Uso comum quando uma função deve retornar mais de um valor Ex: leint (an) /* le proximo caracter da entrada */ int *an; int c, sinal; while (( c = getch( )) = = c = = \n c = = \t ) ; /* pula espaco em branco */ sinal = 1; if (( c = = + c = = - ) /* guarda o sinal */ sinal = (c = = + )? 1 : -1; c = getch ( ); for (*an = 0; c >= 0 && c <= 9 ; c = getch ( )) *an = 10 ** an + c - 0 ; *an *= sinal; if (c!= EOF) ungetch ( c); return (c);

59 59 Apontadores e Arranjos Existe um relacionamento muito estreito entre arranjos e apontadores Ex: int a[10]; int *pa; pa = &a[0]; /* pa = a */ x = *(pa + 1) /* refere-se ao conteudo de a[1] */ Obs: a[j] é idêntico a *( a + j ) Qualquer arranjo e expressão indexada podem ser escritos como um apontador e deslocamento ( vice-versa ) É possível passar parte de um arranjo para uma função Aritmética com Endereços Se p é um apontador, então p++ faz p apontar para o próximo elemento, independente do tipo para o qual p aponta Ex: strlen (s) /* retorna o tamanho da cadeia s */ char *s; char *ap = s; while (*ap!= \0 ) ap++; return (ap - s);

60 60 Operações permitidas com apontadores: adição/subtração com inteiro; adição/subtração/comparação de dois apontadores NULL e p < q Apontadores de Caractere e Funções Quando uma cadeia de caracteres aparece num programa, o acesso a mesma é feito através de um apontador de caractere Ex: char *mensagem; mensagem = sou uma cadeia ; strcpy (s, t) /* copia t em s */ strcpy (s, t) /* copia t em s*/ char s[ ], t[ ]; char *s, *t; int j; while ((*s++ = *t++)!= \0 ) ; j = 0; while ((s[j] = t[j]!= \0 ) j++; Note que: *++p *p++ É possível criar apontadores para apontadores Ex: int *tab_dia[13]; arranjo de apontadores

61 61 Arranjos de apontadores podem ser incializados Ex: char *nome_mes (n) /* retorna o nome do n-esimo mes */ int n; static char *nome[ ] = mes ilegal, janeiro, fevereiro,... dezembro ; return ((n < 1 n > 12)? nome[0] : nome[n]); Apontadores para Funções É possível definir um apontador para uma função Tal apontador pode ser manipulado, passado como argumento, colocado em arranjos, etc. Note que: int (*comp) ( )!= int *comp( )

62 62 Apontadores para Estruturas Ex: struct addr *addr-pointer; A referência para um elemento de uma estrutura através de um apontador para esta estrutura é feita usando o operador -> Ex: struct exemplo float numero; char nome [80]; pessoa; struct exemplo *ptr; ptr = &pessoa; ptr -> nome = Luis ; Argumentos da Linha de Comando Os únicos argumentos permitidos para a função main são argc e argv apontador para os argumentos passados número de argumentos da linha de comando Ex: main (argc, argv) int argc; char *argv[ ]; if (argc < 2) printf ( Entre com seu nome na linha de comando\n ); else printf( Ola %s\n, argv[1]);

63 63 argv[0] é o nome do programa e argv[1] é o primeiro argumento Função para abrir e fechar arquivos Existência de um apontador de arquivo Ex: FILE *fp, *fopen ( ); fp = fopen (nome, modo); Os modos de abertura podem ser os seguintes: r - leitura w - gravação a - adição O apontador nulo, NULL, é retornado se há um erro fclose ( ) para fechar arquivos Leitura e Gravação em Arquivos Para ler ou gravar num arquivo, pode-se usar: getc ( ), putc ( ), fscanf ( ), fprintf ( ) Ex: c = getc (fp); putc (c, fp);

64 64 Exemplos #include <stdio.h> main (argc, argv) /* cat: concatena arquivos */ int argc; char *argv[ ]; FILE *fp, *fopen ( ); if (argc = = 1) /* nao tem argumentos; copia entrada padrao */ copia_arq (stdin); else while (--argc > 0) if ((fp = fopen (*++argv, r )) = = NULL) fprintf (stderr, Erro: cat nao pode abrir %s\n, *argv); exit (1); else copia_arq (fp); fclose (fp); exit (0); copia_arq (fp) /* copia arquivo fp na saida padrao */ FILE *fp; int c; while ((c = getc (fp)!= EOF) putc (c, stdout);

65 65 O Preprocessador C Uma linha do tipo #include nome_arquivo é substituída pelo conteúdo de nome_arquivo Substituição de macros: #define TRUE 1 Exemplo: #define max (A, B) ((A) > (B)? (A) : (B))

66 66

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C 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

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

Primeiro Curso de Programação em C 3 a Edição

Primeiro Curso de Programação em C 3 a Edição Edson Luiz França Senne Primeiro Curso de Programação em C 3 a Edição Visual Books Sumário Prefácio da Terceira Edição 9 Prefácio da Primeira Edição 11 Aula 1 13 Regras de sintaxe de uma linguagem de programação...

Leia mais

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

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

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2016 Linguagem de Programação C 2 1 Linguagem de Programação C Os programas em C consistem em

Leia mais

Algoritmos e Programação _ Departamento de Informática

Algoritmos e Programação _ Departamento de Informática 16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

Conceitos Básicos de C

Conceitos Básicos de C Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,

Leia mais

Programação: Tipos, Variáveis e Expressões

Programação: Tipos, Variáveis e Expressões Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Variáveis na linguagem C: tipo char O tipo char representa um caractere ASCII (ocupa só 1 byte) int main(int argc, char **

Leia mais

Curso de C: uma breve introdução

Curso de C: uma breve introdução V Semana de Engenharia Elétrica - UFBA Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License:

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Estrutura de um programa em linguagem C

Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Exemplo de um programa em linguagem C Directivas de Pré-Processamento #include Declarações Globais Declarações

Leia mais

Tabela ASCII de caracteres de controle

Tabela ASCII de caracteres de controle Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA PROGRAMA DE DISCIPLINA Disciplina: INTRODUÇÃO À PROGRAMAÇÃO Carga horária total: 60 h Carga horária teórica: 30 h Carga horária prática: 30 h Código da Disciplina: CCMP0041 Período de oferta: 2015.2 Turma:

Leia mais

Programação Estruturada I

Programação Estruturada I Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:

Leia mais

Curso de C para Engenharias

Curso de C para Engenharias Aula 4 Cristiano Dalbem Dennis Balreira Gabriel Moreira Miller Biazus Raphael Lupchinski Universidade Federal do Rio Grande do Sul Instituto de Informática Grupo PET Computação Sintaxe Funções Exemplos

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

Laboratório de Programação. Prof. Oscar Luiz Monteiro de Farias fariasol@gmail.com

Laboratório de Programação. Prof. Oscar Luiz Monteiro de Farias fariasol@gmail.com Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias fariasol@gmail.com Ementa: Equivalente ao sumário do livro: The C Programming Language, Second edition. Autores: Brian W. Kernighan, Dennis

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Tipos de Dados Simples

Tipos de Dados Simples Programação 11543: Engenharia Informática 6638: Tecnologias e Sistemas de Informação Cap. 3 Tipos de Dados Simples Tipos de Dados Simples Objectivos: Hierarquia de tipos de dados Tipos de dados simples

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Introdução a C Tipos de Dados Variáveis Operadores

Introdução a C Tipos de Dados Variáveis Operadores Introdução a C Tipos de Dados Variáveis Operadores INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 introdução a C tópicos ciclo de desenvolvimento sistemas numéricos tipos de

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. A Linguagem C

Universidade Federal de Uberlândia Faculdade de Computação. A Linguagem C Universidade Federal de Uberlândia Faculdade de Computação A Linguagem C Prof. Renato Pimentel 1 Programação Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento

Leia mais

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Operações com Strings Introdução a Ponteiros e Funções Profa Rosana Braga 1 Strings Strings são seqüências de caracteres

Leia mais

LINGUAGEM C. Estrutura básica de um programa

LINGUAGEM C. Estrutura básica de um programa LINGUAGEM C Estrutura básica de um programa Um programa em linguagem C é constituído por uma sequência de funções (módulos) que em conjunto irão permitir resolver o problema proposto. Estas funções contêm

Leia mais

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

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

Variáveis e Comandos de Atribuição

Variáveis e Comandos de Atribuição BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Curso de C Procedimentos e Funções 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Funções Roteiro: Funções Declaração e chamada Funções importantes Exemplos de funções Variáveis Globais,

Leia mais

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos

Leia mais

O COMPUTADOR. Introdução à Computação

O COMPUTADOR. Introdução à Computação O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 Linguagem C: Desenvolvida por Dennis Ritchie nos laboratórios da AT&T Bell (EUA) no início dos anos 70; Algol

Leia mais

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream> Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 05 Cadeias de Caracteres Edirlei Soares de Lima Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência

Leia mais

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor

Leia mais

Algoritmo e Técnica de Programação - Linguagem C

Algoritmo e Técnica de Programação - Linguagem C Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

Leia mais

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

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

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Roteiro 1: Dados, variáveis, operadores e precedência

Roteiro 1: Dados, variáveis, operadores e precedência 1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta

Leia mais

Programação de Computadores I. Ponteiros

Programação de Computadores I. Ponteiros Ponteiros Prof. Edwar Saliba Júnior Outubro de 2012 Unidade 13 Ponteiros 1 Identificadores e Endereços Na linguagem C, uma declaração de variável faz associação entre um identificador e endereços de memória;

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

PROGRAMA DE DISCIPLINA

PROGRAMA DE DISCIPLINA PROGRAMA DE DISCIPLINA Disciplina: Introdução à Programação Carga horária total: 60 Carga horária teórica: 0 Carga horária prática: 60 Código da Disciplina: CCMP0041 Período de oferta: 2010.2 Turma: CA

Leia mais

17 - Funções e Procedimentos em C Programação Modular

17 - Funções e Procedimentos em C Programação Modular 17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17

Leia mais

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Visualização Científica Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo

Leia mais

Programação e Sistemas de Informação

Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Programação e Sistemas de Informação REVISÕES 1 Conteúdos Introdução Declaração de strings Atribuição de valores a strings

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Linguagem de Programação em C

Linguagem de Programação em C Linguagem de Programação em C Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://alsm.cc O que fazer com essa apresentação 2 Introdução Por que programar? Quando o homem necessita do auxilio

Leia mais

#define SIM 1 equivale a definição de constantes; a palavra SIM é substituída por 1 toda vez que é utilizada no programa.

#define SIM 1 equivale a definição de constantes; a palavra SIM é substituída por 1 toda vez que é utilizada no programa. 929292929292929292929292929292929292929292929292929292 15- O Pré-Processador C - O compilador C possui um programa chamado pré-processador: executa modificações no código baseado em instruções chamadas

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor

Leia mais

Estruturas (Registros)

Estruturas (Registros) Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Tipo de Dados em Linguagem C

Tipo de Dados em Linguagem C Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

Leia mais

Introdução a POO. Introdução a Linguagem C++ e POO

Introdução a POO. Introdução a Linguagem C++ e POO Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Arquivos Pedro O.S. Vaz de Melo Problema 1 Considere que um arquivo de dados contém os valores das dimensões (tam. max.: 100) e dos elementos de duas matrizes

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem

Leia mais