Princípios de programação em Linguagem C Cesar Tadeu Pozzer UFSM 16/08/2010

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Princípios de programação em Linguagem C Cesar Tadeu Pozzer UFSM 16/08/2010"

Transcrição

1 Princípios de programação em Linguagem C Cesar Tadeu Pozzer UFSM 16/08/2010 Introdução a Programação em Linguagem C Antes de um algoritmo ser executado no computador, ele deve ser traduzido em uma linguagem que o computador possa compreender. Para isso existem os compiladores, que varrem o algoritmo, verificam a existência de erros e o convertem na notação da máquina sendo usada. O código executável de um programa para PC não é igual ao código do mesmo programa para Mac, por exemplo. Neste curso será estudada a linguagem C [2][3] e o compilador usado será o Microsoft Visual C++ para plataforma Windows. Outra forma de executar programas é com o uso de interpretadores, como no caso da linguagem Lua, Javascript, etc. Interpretadores são frequentemente utilizados para fazer processamento de linguagens de script, como no caso engines de jogos e aplicativos gráficos, como o 3D Studio, dentre outros. Para transformar um algoritmo em C, várias adaptações devem ser feitas. C, como qualquer outra linguagem, tem um nível de formalismo muito maior que um algoritmo. Em C, as variáveis devem ter um tipo específico. Por exemplo: Tipo Descrição do tipo int Usado para armazenar números inteiros. Ex: 30, -10, 1001 float Usado para armazenar números reais. Ex: 12.1, 0.003, 1000 char Usado para armazenar caracteres. Ex: a, M Em vez de usar Inicio e Fim, deve-se usar os caracteres para definição de blocos de dados ou funções. A linguagem C define um grande número de bibliotecas de funções. Algumas delas são: Nome da biblioteca math.h stdio.h string.h O que contém Funções matemáticas, como seno, cosseno, etc. Funções de leitura e impressão de dados Funções de manipulação de texto A existência destas funções reduz o tempo de criação de uma aplicação, e tornam o código mais compacto e legível. Cabe ressaltar que não existem funções complexas como por exemplo tomar água ou trocar uma lâmpada. No próximo capítulo a linguagem C será estudada em maior profundidade. A Linguagem C A linguagem C nasceu na década de 70, por Dennis Ritchie. O C é derivado de uma outra linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, inventada por Martin Richards. Uma boa referência da linguagem por ser vista em [1]. Estrutura de um programa C Todo programa escrito em C é composto por funções. Uma função é um bloco de programa onde são descritas as operações que devem ser realizadas. Existe uma única função que deve estar presente em todos os programas, que é a função main( ), e é o ponto de partida de execução do programa. A sintaxe de uma função é a seguinte:

2 tipo_retorno nome_função( parametros ) O seguinte exemplo mostra a sintaxe de um programa simples, que somente imprime na tela o valor de uma expressão aritmética. Linha Comando C 1 #include <stdio.h> 2 int main( void ) 3 4 int dado1, dado2, resp; 5 dado1 = 20; 6 scanf( %d, &dado2 ); 7 /*Isto é um comentário*/ 8 resp = dado1*dado2; 9 printf( O valor da expressão é %d, resp); 10 return 0; 11 Na linha 1, a diretiva de compilação #include faz o compilador adicionar o arquivo stdio.h ao código do programa. Este arquivo adicionado contém protótipos de várias funções de entrada e saída. A inclusão é necessária pois na linha 6 é chamada a função scanf( ), que faz a leitura do teclado de um número inteiro e atribui a variável dado2; e na linha 9 é chamada a função printf( ), que faz a impressão do valor da expressão, calculada na linha 8, na tela do computador. Na linha 2 está declarada a função main( ). Para este exemplo, a função deve retornar um valor inteiro (int) e não recebe nenhum parâmetro (void). O corpo da função main é delimitado pelo bloco, que tem início na linha 4 e termina na linha 10. Qualquer código fora deste bloco não irá pertencer a função main( ). O uso de variáveis é necessário para fazer a manipulação dos dados do programa. Na linha 4 são declaradas 3 variáveis do tipo inteiro (variáveis que somente podem armazenar valores inteiros). A variável chamada dado1 é inicializada na linha seguinte com o valor 20. A variável dado2 é lida do teclado pela chamada da função scanf( ). O programa somente segue a execução para o próximo comando quando o usuário digitar algum valor e pressionar a tecla <Enter>. Na linha 7 é adicionado um comentário ao programa, que será ignorado pelo compilador na geração do código executável. Comentários são de grande importância na documentação do código fonte. Na linha 8 é avaliada uma expressão de multiplicação, que consiste em armazenar na variável resp o valor da multiplicação da variável dado1 com dado2. O valor da expressão é mostrado na tela pela chamada da função printf( ). Ao final, o programa retorna o valor 0 ao sistema operacional, indicando que a finalização do programa ocorreu de forma correta. Um programa pode ter qualquer número de funções. O uso de funções é uma boa forma de estruturação do programa e facilita a reutilização de código. Variáveis declaradas dentro de uma função somente são visíveis somente dentro da própria função. Variáveis podem ter qualquer nome, desde que iniciem com letras, como por exemplo: a, dado, v_13df, teste, tmp, etc. Não são permitidos caracteres especiais como -, +, *, etc, bem como acentuação. Aconselha-se dar nomes significativos as variáveis, pois tornam o código fonte mais legível, como por exemplo: media, temp, opcao, resp, etc. Observa-se que comandos e declarações de variáveis são terminadas com ponto-e-vírgula. Caso algum ; for esquecido (erro de sintaxe), será gerada uma mensagem de erro pelo compilador indicando a linha onde o erro ocorreu. Outra observação é que o C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença. Se for declarada uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou soma. Da mesma maneira, os comandos do C if e for, por exemplo, só podem ser escritos em minúsculas pois senão o compilador não irá interpretá-los como sendo comandos, mas sim como variáveis. Este mesmo programa poderia ser escrito de forma mais estruturada, colocando a operação de multiplicação em uma função específica.

3 1 #include <stdio.h> 2 3 int produto(int n1, int n2); 4 5 int produto(int n1, int n2) 6 7 int resp; 8 resp = n1 * n2; 9 return resp; int main( void ) int dado1, dado2, resp; 15 dado1 = 20; 16 scanf( %d, &dado2 ); 17 /*chamada da funcao produto passando dado1 e dado2*/ 18 resp = produto(dado1, dado2); 19 printf( O valor da expressão é %d, resp); 20 return 0; 21 Neste exemplo, foi criada a função multiplica, que recebe dois parâmetros inteiros e retorna outro inteiro, representando o produto de n1 com n2. Esta função é chamada de dentro da função main( ), na linha 18. Quando a função é chamada, a execução do programa sai da função main e vai para a função produto e a variável dado1 é copiada na variável n1 e a variável dado2 é copiada na variável n2. Quando a função produto retorna (linha 9), o valor de retorno é atribuído a variável resp na linha 18. Cabe lembrar que as variáveis resp são locais à função onde foram declaradas, logo a variável resp da função produto( ) não é a mesma da função main( ). Quando a função produto( ) retorna, a execução continua na função main( ). Na linha 3 é declarado o protótipo da função produto( ), que é usada para indicar ao compilador da existência da função produto. A declaração do protótipo é obrigatória caso a função seja chamada antes de sua declaração, o que não ocorre neste exemplo. 3 Tipo de Dados 3.1 Tipos básicos A linguagem C oferece vários tipos básicos para definição de valores do tipo caractere, inteiro e de ponto flutuante. Deve-se usar o tipo mais adequado ao dado que se deseja representar. A tabela a seguir ilustra os tipos, com respectivos tamanhos e representatividades.

4 Tabela de tipos básicos Tipo Espaço ocupado Representatividade char 1 byte -128 a 127 unsigned char 1 byte 0 a 255 short int 2 bytes a unsigned short int 2 bytes 0 a int 4 bytes a unsigned int 4 bytes 0 a float 4 bytes ± a double 8 bytes ± a A declaração de variáveis segue o mesmo modelo dos exemplos anteriores. A inicialização pode ocorrer juntamente com a declaração da variável. Variável não inicializada leva a erros na execução do programa. float a, b, c=10.4; char nome = 20, letra= m ; unsigned char byte; Deve-se ter os seguintes cuidados no uso de variáveis: -Deve-se garantir que não será atribuído valor superior ao da representatividade de cada tipo, o que pode levar ao truncamento e alteração da informação armazenada; -A conversão de números inteiros para flutuantes ocorre de forma automática e sem perda, porém o contrário não; -Variáveis não inicializadas contém lixo. int a, b, c; a = 2; c = a + b; /*b não foi inicializada e contém lixo*/ De forma complementar a definição de variáveis, pode-se também definir strings que serão substituídas pelos seus identificadores toda vez que encontrados no código fonte. Isso é feito pela diretiva #define. No seguinte exemplo, o identificador é o MAX_JOGADORES, e a string correspondente é 5. #define MAX_JOGADORES 5... /* antes de ser compilada, esta linha será transformada em if (cont<5)*/ if ( cont < MAX_JOGADORES ) /* comandos */ Este recurso deixa o código mais legível e é uma técnica muito usada em jogos. #define POWERUP_TYPE_HULL 1 #define POWERUP_TYPE_SHIELD 2 #define POWERUP_TYPE_QUAD 3 #define POWERUP_TYPE_INVISIBLE 4 #define POWERUP_TYPE_INVENSIBLE 5

5 Além dos tipos básicos, também existem os tipos estruturados, que permitem a definição de dados mais complexos. 3.2 Vetores e Strings Uma forma simples de implementar tipos de dados mais complexos é por meio de vetores. Eles permitem que conjuntos de dados do mesmo tipo sejam definidos por uma única variável, como no seguinte exemplo. float vet[5] = 1.2, 0.09, 34, 1.01, 50000; int tabela[2]; tabela[0] = 1000; tabela[1] = 88; Neste exemplo, vet é um vetor com 5 posições para números do tipo float. A inicialização de vetores também pode ocorrer juntamente com a declaração. Em C, a primeira posição do vetor é a de índice 0 e a última é a de índice N-1, como mostrado na inicialização do vetor de inteiros tabela. A atribuição tabela[2] = 90 causa invasão de memória pois a posição de índice 2 não está definida. Deve-se observar que o tamanho dos vetores é definido em tempo de compilação, ou seja, o compilador irá reservar espaço suficiente na memória para comportar os vetores vet e tabela. Caso não se saiba de antemão o espaço que será necessário para armazenar os dados, como por exemplo o número de jogadores que estarão conectados ao servidor, deve-se então usar uma estratégia de alocação de memória em tempo de execução (alocação dinâmica). Em C, isso pode ser feito com o uso de ponteiros, que são variáveis cujo conteúdo é um endereço de memória. Para o exemplo acima, a versão com alocação dinâmica se torna: float *vet; /* vet é um ponteiro para float */ int *tabela; /* tabela é um ponteiro para int */ vet = (float*)malloc(5*sizeof(float)); tabela = (int*) malloc(2*sizeof(int)); tabela[0] = 1000; tabela[1] = 88; Em termos de sintaxe, a diferença entre um ponteiro e uma variável normal é a presença do asterisco antes do nome da variável. O operador sizeof( tipo ) retorna o número de bytes ocupado pelo tipo (ver tabela de tipos básicos). A função malloc( size ) aloca size bytes e retorna o endereço inicial da região alocada. Este endereço retornado é atribuído ao ponteiro que passa a apontar para a região alocada. Ponteiros, além de apontar para regiões de memória alocadas, podem também apontar para outras variáveis, e são de grande importância na passagem de parâmetros por referência. float *pont; /*declara um ponteiro para float */ float var = 30; /*declara uma variável com o valor de 30.0 */ pont = &var; /*faz pont apontar para o endereço da variável var */ printf( %f, *pont); /*Imprime o conteúdo do ponteiro que vale 30 */ A representação de strings em C é feita por meio de vetores. C não possui um tipo básico específico. Outra particularidade do C, é que quando se aloca um string deve-se reservar um espaço a mais para guardar um caractere terminador de string, o \0. Sem ele, não se pode saber qual o tamanho da string.

6 char str[10] = oi ; Neste exemplo, str[0]= o, str[1]= i e str[2]= \0. C fornece diversas funções para manipulação de strings, como por exemplo strcat( ), que concatena duas strings, strcpy( ), que faz cópia de strings, strlen( ), que retorna o tamanho da string, gets (), que lê uma string do teclado. Todas estas funções e muitas outras estão na biblioteca string.h. Caso alguma destas funções for usada, deve-se adicionar no topo do programa a diretiva: #include <string.h> 3.3 Estruturas Para definir tipos de dados complexos de tipos variados, C define o tipo struct, que permite aglomerar em um único elemento diversos tipos básicos ou complexos. A sintaxe de definição é a seguinte: struct nome /* colocar aqui os tipos desejados */ /* colocar aqui os tipos desejados */ ; Um exemplo muito comum em jogos é a definição de primitivas geométricas. A definição de um ponto em 3D pode ser da seguinte maneira: struct ponto3d float x, y, z; ; Com esta definição, o tipo struct ponto3d pode ser usado para armazenar pontos do espaço 3D. O exemplo seguinte mostra a utilização de estruturas. struct ponto3d p1, p2; /*define duas variáveis do tipo struct ponto3d */ p1.x = 20; /* atribui 20 ao campo x de p1 */ p1.y = 1.002; p1.z = 70; p2.x = p1.x p1.z; Para acessar os elementos da estrutura deve-se usar ponto. Caso a estrutura for alocada dinamicamente, deve-se usa o operador seta (->). struct ponto3d *p1; p1 = (struct ponto3d *) malloc(sizeof(struct ponto3d)); p1->x = 20; Outra característica do C é permitir criar nomes de tipos. No seguinte exemplo: typedef struct

7 float x, y, z; ponto3d; define-se ponto3d como um tipo, o que facilita a futura utilização: ponto3d *p1; p1 = (ponto3d *) malloc(sizeof(ponto3d)); p1->x = 20; Estruturas podem conter outras estruturas bem como pode-se também definir vetores de estruturas: ponto3d vet[100]; /*vetor com 100 posições do tipo ponto3d */ /*definição da estrutura quadrado compostas por 4 ponto3d e mais uma string para conter o nome do elemento */ typedef struct char nome[100]; ponto3d pontos[4]; quadrado; A passagem de estruturas para funções é semelhante aos outros tipos de dados. Neste exemplo a variável quadro1 é passada por referência para a função imprime. A função imprime recebe somente o endereço da localização da variável quadro1. /* a definição da estrutura quadrado e ponto3d deve ser feita fora de main( ) pois a função imprime também usa esta estrutura */ void imprime(quadrado *q) int cont; printf("nome da variável: %s", q->nome ); for( cont=0; cont<4; cont++) printf("%f ", q->pontos[cont].x); printf("%f ", q->pontos[cont].y); printf("%f ", q->pontos[cont].z); int main(void) /*declaração da variável quadro1 */ quadrado quadro1; /* eh passado para a função imprime o endereço (&) da variável quadrado, que deve ser inicializada */ imprime( &quadro1 );

8 return 0; 4 Operadores Existem vários tipo de operadores em C, que podem ser classificados, segundo sua função, nos seguintes grupos: Tipo do Operador Exemplo Descrição Aritméticos +, -, *, /, f = a+b; Operações aritmética convencionais % (módulo) c = a%b; c recebe o resto da divisão inteira de a por b Atribuição = a = 10; Inicializa a com 10 Incremento ++ cont++; Incrementa cont em 1 -- cont--; Decrementa cont em 1 += cont+=5 Incrementa cont em 5 -= cont-=3 Decrementa cont em 3 Relacionais == a==b Testa se a é igual a b <, <= a<=b Testa se a é menor ou igual a b >, >= a>b Testa se b é menor que a!= a!=b Testa se a é diferente de b Lógicos && E (and) lógico Ou (or) lógico! Negação (not) Exemplos de operadores relacionais e lógicos serão apresentados na seção seguinte. 5 Controle de fluxo Para efetuar tomada de decisões, desvios condicionais e controle de laços de repetição, C fornece um amplo conjunto de construções para as mais diversas necessidades. O comando principal, que é a base para os outros é o if (se, em português). A sintaxe é a seguinte. if (expressão for verdadeira) /* bloco de comandos */ ou

9 if (expressão for verdadeira) /* bloco de comandos */ else /*senao */ /* bloco de comandos se expressão for falsa */ Em C, uma expressão é verdadeira se tiver valor diferente de 0 (zero) e falsa se for igual a 0. Suponha o seguinte exemplo: int a; scanf( %d, &a); if(a>5) printf( A eh maior que 5 ); else if(a<=5) printf( A eh menor ou igual a 5 ); Além de operadores relacionais, pode-se também usar operadores lógicos if( (a < 4 && b <=10) c!=6 ) d -= 30; Neste exemplo deve-se cuidar a precedência dos parênteses. A expressão é verdadeira em duas situações, devido ao OU lógico: 1) se (a menor 4 E b menor igual 10) 2) se (c diferente 6) Quando o encadeamento de if-else se tornar muito grande, pode-se usar a estrutura switch, que torna o código mais estruturado e legível. A sintaxe é a seguinte: switch ( expressao ) case opcao1: /* comandos executados se expressao == opcao1 */ break; case opcao2: /* comandos executados se expressao == opcao2 */ break; default: /* se expressao for diferente de todos as opções anteriores */ break;

10 O valor da expressão deve ser um número inteiro ou uma constante caractere. Caso expressão for igual a opcao1, serão executados todos os comandos até o comando break. A opção default é opcional. Para tratar laços de repetição, pode-se usar o for(;;), while() ou do-while(). O comando for e while tem funcionalidades semelhantes, porém o for é mais compacto: for(inicialização; condição; incremento ) for(int i=0; i<=20; i++) printf( %d, i); while (condição) int i=0; while( i<= 20 ) printf( %d, i); i++; Nos dois casos, inicialmente é testada a condição. Se ela for verdadeira, o laço executa e a variável i é incrementada, de forma iterativa. Deve-se usar preferencialmente o for quando se sabe com certeza quantas iterações vão ser executadas e o while quando não se tem esta informação. Deve-se ter cuidado para NÃO colocar ; após o for ou while, pois o bloco do laço não é mais executado (isso não causa erro de compilação). O comando do-while() é muito semelhante ao while, com a diferença que o laço primeiramente é executado para posterior teste condicional: int i=0; do printf( %d, i); while(i<20); 7 Referências Bibliográficas [1] Kernighan, B., Ritchie, D. C, A linguagem de Programação Padrão Ansi. Ed. Campus, [2] Schildt, H. C completo e total. Ed. Makron Books, Apêndices Nesta seção são apresentados 5 programas exemplo que mostram as principais características da linguagem C. No cabeçalho de cada exemplo existe uma descrição dos assuntos apresentados. 8.1 Exemplo 1 /* TOPICOS - impressao de mensagens na tela - leitura de valores inteiros e reais

11 - definicao de vetores de inteiros e caracteres - manipulacao de vetores - passagem de vetores para funções - lacos de repeticao */ #include <stdio.h> void imprime_vetor(int v[]) int cont; printf("\nos numeros digitados foram: "); /*imprime os 4 valores lidos */ for(cont=0; cont<4; cont++) /* apos imprimir o numero, eh adicionado dois espacos em branco */ printf("%d ", v[cont] ); int main(void) int a; float b; char str[20]; /*define um vetor com 19 posicoes uteis */ int vet[4]; /*define um vetor de inteiros com 4 posicoes */ int cont; /* o caractere '\n' faz pular uma linha na tela*/ printf("\ndigite um numero inteiro e um float, separados por espaco e tecle <enter>:\n"); /*"%i" indica que a variavel a sera lida como inteira. */ /*"%f" indica que a variavel a sera lida como float. */ /* a funcao scanf recebe o endereco das variaveis a serem lidas */ scanf("%i %f", &a, &b); /* para formatar a saida do tipo float com 3 casas decimais, usar 0.3f */ printf("\nos numeros foram: \ninteiro: %i \nfloat: %0.3f\n", a, b); /* limpa o buffer de teclado */ fflush(stdin); printf("\ndigite uma string com no maximo 19 caracteres\n"); gets(str); /* %s indica que a variavel str sera lida como uma string */

12 printf("\na string digitada foi: %s\n", str); /* limpa o buffer de teclado */ fflush(stdin); printf("\n\ndigite 4 numeros inteiros: "); /*faz a leitura de um vetor com 4 posicoes de inteiro */ for(cont=0; cont<4; cont++) scanf("%d", &vet[cont] ); /* chama funcao para imprimir o vetor */ imprime_vetor(vet); return 0; 8.2 Exemplo 2 /* TOPICOS - utilizacao de #defines - leitura de valores char - uso do comando switch */ #define KEY_UP 72 #define KEY_DOWN 80 #define KEY_LEFT 75 #define KEY_RIGHT 77 #define KEY_EXIT 27 #include <stdio.h> #include <conio.h> int main(void) char opcao; /*define uma variavel char. */ /* inicializa a varival opcao */ opcao = 0; printf("\npressione alguma seta ou ESC para sair: "); while(opcao!= KEY_EXIT ) /* limpa o buffer de teclado */ fflush(stdin); /*le uma tecla */ opcao = getch();

13 //printf("%d ", opcao); switch(opcao) case KEY_UP: printf("\n Seta para cima"); break; case KEY_DOWN: break; printf("\n Seta para baixo"); case KEY_LEFT: break; printf("\n Seta para esquerda"); case KEY_RIGHT: printf("\n Seta para direita"); break; return 0; 8.3 Exemplo 3 /* TOPICOS - uso de funcoes da biblioteca string.h - representacao numerica de caracteres - conversao de caracteres para maiusculo - manipulacao de caracteres dentro de vetores (strings) */ #include <stdio.h> #include <string.h> /* Cada letra tem um numero decimal associado. Para descobrir o valor, pode-se usar printf("%d", variavel)*/ void valor_decimal(void) char letra1='a', letra2='a', letra3='5'; printf("\no valor da letra a eh: %d", letra1); printf("\no valor da letra A eh: %d", letra2); printf("\no valor da diferenca eh %d", letra1-letra2); printf("\no valor da letra 5 eh: %d", letra3);

14 void maiusculo(char *str) int i=0; /*enquanto nao encontrar o final da string, troca as letras para maiusculo. */ while( str[i]!= '\0' ) str[i] = str[i]-32; /* outra solucao eh str[i] = str[i]-('a'-'a');*/ i++; int main(void) int a, tam; char str[100]; /*copia a string "teste" em str */ strcpy(str, "teste"); /*verifica o tamanho de str */ tam = strlen(str); printf("\n O tamanho de str eh %d", tam); /*Varre a string e troca as letras 'e' por 'a' Observar a diferenca entre o operador de atribuicao e comparacao*/ for(a=0; a<tam; a++) if(str[a]=='e') /* "==" -> coparacao logica */ str[a] = 'a'; /* "=" -> atribuicao */ /*imprime a nova string alterada*/ printf("\na nova string eh %s", str); /*adiciona uma nova string ao final de str */ strcat(str, ".exe"); printf("\na nova string eh %s", str); /*trunca a string para 2 caracteres colocando o caractere '\0' na posicao 2*/ str[2]='\0'; printf("\na nova string truncada eh %s", str); /*imprime o valor decimal de algumas letras. Tambem vale para numeros */ valor_decimal();

15 /*chama a funcao maiusculo passando uma referencia da string. Nao precisa colocar o & antes de str pois somente str ja é igual ao endereco da primeira posicao do vetor = &str[0].*/ maiusculo(str); printf("\na nova string maiuscula eh %s", str); return 0; 8.4 Exemplo 4 /* TOPICOS - definicao de tipos de dados - passagem de tipos por valor - passagem de tipos por referencia - passgem de strings. - indexacao de estruturas por ponteiros - leitura de valores reais - ponteiros para tipos definidos */ #include <stdio.h> /*como a definicao da estrutura foi feita fora da funcao main, pode ser acessada de qualquer parte do programa */ typedef struct float x; float y; ponto2d; /*funcao que recebe uma referência de uma variavel do tipo ponto2d Como a passagem eh por referencia, qualquer alteracao nesta funcao ira alterar o valor de p1 na função main. p eh um ponteiro */ void altera_referencia(ponto2d *p) p->x = 10; p->y = 10; /*neste caso, p eh possado por valor. Para alterar p1 de main deve-se retornar o novo valor */ ponto2d altera_valor(ponto2d p) p.x = 1000; p.y = 1000; return p;

16 void imprime(ponto2d p, char *msg) /* o argumento %0.2f indica que a variavel sera impressa com duas casas decimais */ printf("%s = (%.2f, %.2f)\n", msg, p.x, p.y); int main (void) /*definicao de p1 do tipo struct ponto2d*/ ponto2d p1; printf("digite as coordenadas do ponto(x y): "); /* na funcao scanf, deve-se passar o endereco "&" das variaveis que serao lidas */ scanf("%f %f", &p1.x, &p1.y); /* chama a funcao imprime passando uma copia de p1 e uma mensagem*/ imprime(p1, "O ponto lido foi "); altera_referencia(&p1); /* eh passado o endereco da varival p1 */ imprime(p1, "O ponto alterado eh "); p1 = altera_valor(p1); /* eh passado uma copia da varival p1 */ imprime(p1, "O ponto alterado eh "); return 0; 8.5 Exemplo 5 /* TOPICOS - definicao de tipos de dados - alocacao dinamica - ponteiros para tipos definidos - vetores de ponteiros para estruturas - funcoes matematicas */ #include <stdio.h> /*funcao printf() */ #include <math.h> /*funcao seno e rand() */ #include <stdlib.h> /*funcao malloc() */ #define NUM_PONTOS 8

17 /*como a definicao da estrutura foi feita fora da funcao main, pode ser acessada de qualquer parte do programa */ typedef struct float x; float y; ponto2d; void imprime(ponto2d *p, int indice) /* o argumento %0.2f indica que a variavel sera impressa com duas casas decimais */ printf("\n Ponto %d = (%.2f, %.2f)\n", indice, p->x, p->y); int main (void) int i; /*definicao de um vetor de ponteiros para ponto2d*/ ponto2d *p1[num_pontos]; /*agora deve-se fazer a alocacao dos pontos */ for(i=0; i< NUM_PONTOS; i++) p1[i] = (ponto2d*)malloc(sizeof(ponto2d)); /*faz a inicializacao dos pontos com valores randomicos */ for(i=0; i< NUM_PONTOS; i++) p1[i]->x = (float)sin(i); p1[i]->y = (float)(rand()%100); /* valor randomico entre 0 e 100 */ /*faz a impressao dos pontos */ for(i=0; i< NUM_PONTOS; i++) imprime(p1[i], i); return 0;

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

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

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

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

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

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

INF 1620 P1-10/04/02 Questão 1 Nome:

INF 1620 P1-10/04/02 Questão 1 Nome: INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,

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

Alocação dinâmica de memória

Alocação dinâmica de memória Alocação dinâmica de memória Jander Moreira 1 Primeiras palavras Na solução de problemas por meio algoritmos ou programas, é comum surgir a necessidade de manter todo o conjunto de dados a ser processado

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

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

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C Belo Horizonte 2010 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4 3.1 Strings

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

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

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 à 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

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

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

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

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

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

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

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para

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

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 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

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

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

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

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

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 06 Tipos Estruturados Edirlei Soares de Lima Dados Compostos Até agora somente utilizamos tipos de dados simples: char, int, float, double. Muitas vezes

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

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

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

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

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

1) <stdio.h> - Contém protótipos de funções da biblioteca padrão de entrada/saída e as informações utilizadas por elas.

1) <stdio.h> - Contém protótipos de funções da biblioteca padrão de entrada/saída e as informações utilizadas por elas. 1 Principais funções da linguagem C Utilizando funções Em C todas as ações ocorrem dentro de funções. A função main é sempre a primeira a ser executada. Com exceção da função principal main, uma função

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

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 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

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 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

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4

Leia mais

Funções matemáticas, como seno, cosseno, etc. Funções de leitura e impressão de dados Funções de manipulação de texto

Funções matemáticas, como seno, cosseno, etc. Funções de leitura e impressão de dados Funções de manipulação de texto Universidade Federal de Santa Maria Prof. Cesar Tadeu Pozzer Disciplina: Lógica e Algoritmo - ELC1064 26/02/2013 A Linguagem C A linguagem C nasceu na década de 70, por Dennis Ritchie, e foi derivada da

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Introdução No capítulo anterior verificamos que a execução seqüencial dos comandos da função main nos limita a programação de algoritmos muito simples. Passamos, então, a dedicar

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

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

Curso básico de Linguagem C. Desenvolvido por Ricardo Lüders

Curso básico de Linguagem C. Desenvolvido por Ricardo Lüders Curso básico de Linguagem C Desenvolvido por Ricardo Lüders Introdução Introdução > Sobre o curso Sobre o curso O curso será apresentado em 5 (cinco) encontros, totalizando 20 (vinte) horas/aula. Apresentará

Leia mais

Italo Valcy <italo@dcc.ufba.br>

Italo Valcy <italo@dcc.ufba.br> Programação C Módulo 01 Introdução à linguagem C Italo Valcy www.ieee.org/ufba Italo Valcy Programação em C Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente,

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

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução 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

Estrutura de Dados. Prof. Gustavo Willam Pereira. Créditos: Profa. Juliana Pinheiro Campos

Estrutura de Dados. Prof. Gustavo Willam Pereira. Créditos: Profa. Juliana Pinheiro Campos Estrutura de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos ESTRUTURAS DE DADOS Ementa Introdução à Linguagem C. Recursividade. Alocação dinâmica de memória. Conceito de tipos

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

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

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

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

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

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

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

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com.

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com. UAL é uma linguagem interpretada para descrição de algoritmos em Português. Tem por objetivo auxiliar o aprendizado do aluno iniciante em programação através da execução e visualização das etapas de um

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

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

5 Apresentando a linguagem C

5 Apresentando a linguagem C 5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,

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

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

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

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 8 Strings e Estruturas Susana M Iglesias 1 STRINGS - INTRODUÇÃO Strings (cadeia de caracteres): é uma serie de caracteres que podem ser tratados como uma unidade simples,

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

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

Programando em C++ Histórico da Linguagem C

Programando em C++ Histórico da Linguagem C Programando em C++ Joaquim Quinteiro Uchôa joukim@comp.ufla.br DCC-UFLA, 2002 Programando em C++ p.1/38 Histórico da Linguagem C Linguagem C: 1972 - Laboratório Bells, por Dennis Ritchie, a partir da linguagem

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Prof a.dr a.thatyana de Faria Piola Seraphim (ECO) Prof.Dr.Enzo Seraphim (ECO) Universidade Federal de Itajubá thatyana@unifei.edu.br seraphim@unifei.edu.br Introdução - História A linguagem de programação

Leia mais

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ #include { Este trecho é reservado para o corpo da função, com a declaração de suas variáveis locais, seus comandos e funções

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

MC-102 Aula 19 Registros

MC-102 Aula 19 Registros MC-102 Aula 19 Registros Instituto de Computação Unicamp 4 de Maio de 2015 Roteiro 1 Registros 2 Redefinição de tipos (Instituto de Computação Unicamp) MC-102 Aula 19 4 de Maio de 2015 2 / 17 Registros

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

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

1 - INTRODUÇÃO: O QUE É C?

1 - INTRODUÇÃO: O QUE É C? 1 - INTRODUÇÃO: O QUE É C? C é uma linguagem de programação de computadores; Desenvolvida em 1972 por Dennis Ritchie no Bell Lab para uso no sistema operacional Unix; Foi amplamente aceita por oferecer

Leia mais

Laboratório de Programação 02

Laboratório de Programação 02 Laboratório de Programação 02 Ambiente de Desenvolvimento e Revisão da Linguagem C Prof. Carlos Eduardo de Barros Paes Prof. Julio Arakaki Departamento de Computação PUC-SP Code::Blocks Ambiente integrado

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

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

APOSTILA DO CURSO LINGUAGEM C. Prof. Erico Fagundes Anicet Lisboa, M. Sc. erico@ericolisboa.eng.br

APOSTILA DO CURSO LINGUAGEM C. Prof. Erico Fagundes Anicet Lisboa, M. Sc. erico@ericolisboa.eng.br APOSTILA DO CURSO LINGUAGEM C Prof. Erico Fagundes Anicet Lisboa, M. Sc. erico@ericolisboa.eng.br Versão digital disponível na internet http://www.ericolisboa.eng.br RIO DE JANEIRO, RJ - BRASIL NOVEMBRO

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

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Convertendo Algoritmos para a Linguagem C

Convertendo Algoritmos para a Linguagem C onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento

Leia mais

Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível

Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível 95 Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível 96 Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível Nesta etapa estudaremos

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

Apostila de Estruturas de Dados

Apostila de Estruturas de Dados Apostila de Estruturas de Dados Profs. Waldemar Celes e José Lucas Rangel PUC-RIO - Curso de Engenharia - 2002 Apresentação A disciplina de Estruturas de Dados (ED) está sendo ministrada em sua nova versão

Leia mais

9. Estruturas em C Registros

9. Estruturas em C Registros 9. Estruturas em C Registros Unesp Campus de Guaratinguetá Curso: Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1 9. Estrutura Até o presente momento os nossos dados eram armazenados

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Registros. Técnicas de Programação. Rafael Silva Guimarães :p://:p.ci.ifes.edu.br/informa@ca/rafael_guimaraes

Registros. Técnicas de Programação. Rafael Silva Guimarães :p://:p.ci.ifes.edu.br/informa@ca/rafael_guimaraes Rafael Silva Guimarães :p://:p.ci.ifes.edu.br/informa@ca/rafael_guimaraes Registros Técnicas de Programação Baseado no material do Prof. Rafael Vargas Mesquita Conceito de Registro (Struct) Vetores e Matrizes

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis 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

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

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

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II 1 Disciplina: ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II Faculdade de Análise de Sistemas Práticas de Laboratório 1- Cronograma Previsto (este cronograma pode sofrer alterações em decorrência de ajustes

Leia mais