Arrays. 6.2 Arrays. 6.1 Introdução. Elementos de um array são como as variáveis normais que vocês já conhecem

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

Download "Arrays. 6.2 Arrays. 6.1 Introdução. Elementos de um array são como as variáveis normais que vocês já conhecem"

Transcrição

1 1 2 Arrays.1 Introdução Array Vector Estrutura de elementos relacionados ( do mesmo tipo) Entidade estática tem sempre a mesma dimensão ao longo da execução do programa É um grupo de locais de memória consecutivos que partilham o mesmo nome e tipo Formato: Para nos referirmos a um elemento do vector usamos o nome do vector e o índice da posição que o elemento ocupa no vector - nomedovector[ numerodaposição ] O primeiro elemento está na posição zero n ésimo elemento de um array com nome c é c[ n 1 ] - c[ 0 ], c[ 1 ]...c[ n 1 ] 2007 Pearson Education, Inc. All rights reserved. Adaptado para PROG I por Ana Respício (DIFCUL) Nome do array (todos os elementos têm o mesmo nome c) 3.2 Arrays 4 Elementos de um array são como as variáveis normais que vocês já conhecem - c[ 0 ] = 3; - printf( "%d", c[ 0 ] ); Posição do elemento dentro do array c Podemos fazer operações nos índices. Se x for igual a 3 - c[ x ] é igual a - c[ 3 ] e também igual a - c[ 5-2 ] Fig..1 Elementos do array c.

2 5 Erro comum de programação Operadores Associatividade Tipo [] () parentesis ++ --! (tipo) unario O sétimo elemento do vector é diferente do elemento na posição sete do vector. Os índices dos vectores começam em zero 0. O sétimo elemento do vector tem índice. O elemento na posição sete do vector tem índice 7 e é o oitavo elemento no vector. * / % multiplicativo + - aditivo < <= > >= relacional ==!= igualdade && conjunção lógica dijunção lógica?: condicional = += -= *= /= %= atribuição, vírgula Isto costuma dar confusão!!!! Fig..2 Precedência e associatividade dos operadores..3 Definição de arrays 7.4 Exemplos 8 Quando definimos arrays, especificamos Nome Tipo dos elementos no array Número de elementos - tipo nomearray[ numerodeelementos ]; Exemplos: - int c[ 10 ]; - double myarray[ 3284 ]; Definição de vários arrays do mesmo tipo Formato como nas outras variáveis Exemplo: - int b[ 100 ], x[ 27 ]; Inicializadores - int n[ 5 ] = { 1, 2, 3, 4, 5 }; Se não estão presentes inicializadores em número suficiente, os elementos mais à direita ficam com o valor 0 int n[ 5 ] = { 0 }; - Todososelementosficam0 Se há inicializadores em demasia, há erro de compilação Não há verificação dos limites dos arrays em C Se o tamanho for omitido, são os inicializadores que o determinam - int n[ ] = { 1, 2, 3, 4, 5 }; 5 inicializadores, logo o array vai ter 5 elementos

3 1 /* Fig..3: fig0_03.c initialização de um array 2 * Ligeiramente modificado por Ana Respício */ 4 5 int main( void ) 7 { 8 int meu[ 10 ]; /* meu eh um array com 10 elementos */ 9 int i; /* contador */ /* inicializa elementos do array meu com valor 0 */ 12 for ( i = 0; i < 10; i++ ) { 13 meu[ i ] = 0; /* atribui 0 ao elemento na posicao i */ 14 } /* end for */ 15 1 printf( " Posicao Valor\n" ); /* escreve o conteudo do array meu com aspecto de uma tabela */ 19 for ( i = 0; i < 10; i++ ) { 20 printf( "%7d%13d\n", i, meu[ i ] ); 21 } /* fim do for */ return 0; } /* fim da funcao main */ fig0_03.c (1 de 2 ) Ciclo for inicializa cada elemento do array em separado Ciclo for imprime todos os elementos do array 9 Posicao Valor fig0_03.c (2 de 2 ) 10 1 /* Fig..4: fig0_04.c 2 * Inicializacao de um array com uma lista de inicializadores 3 * Adaptado por Ana Respício */ 4 #include <stdio.h> 5 int main( void ) 7 { 8 /* usa uma lista de inicializadores para inicializar o array meu */ 9 int meu[ 10 ] = { 32, 27, 4, 18, 95, 14, 90, 70, 0, 37 }; 10 int i; /* contador */ printf( " Posicao Valor\n" ); /* imprime o conteudo do array na forma de uma tabela */ 15 for ( i = 0; i < 10; i++ ) { 1 printf( "%7d%13d\n", i, meu[ i ] ); 17 } /* fim do for */ return 0; } /* fim da funcao main */ fig0_04.c (1 de 2 ) A lista de inicializadores inicializa todos os elementos simultaneamente 11 Posicao Valor fig0_04.c (2 de 2 ) 12

4 Erro comum de programação 1. Esquecer de inicializar os elementos de um array cujos elementos devem ser inicializados. 2. Usar mais inicializadores do que o tamanho do array /* Fig..5: fig0_05.c 14 2 * Inicializar os elementos de um array s com os numeros pares 3 * entre 2 e 20 */ 4 #include <stdio.h> A directiva #define diz ao compilador para 5 #define SIZE 10 /* tamanho maximo do array */ substituir todas as ocorrências da palavra SIZE por 10 fig0_05.c 7 int main( void ) 8 { 9 /* a constante simbolica SIZE eh usada para especificar o tamanho do array */ 10 int s[ SIZE ]; /* array s tem SIZE elementos */ 11 int j; /* contador */ for ( j = 0; j < SIZE; j++ ) { /* atribuir os valores */ 14 s[ j ] = * j; 15 } /* fim do for */ 1 17 printf( " Posicao Valor\n" ); /* imprime o conteudo do array em forma de tabela */ 20 for ( j = 0; j < SIZE; j++ ) { 21 printf( "%7d%13d\n", j, s[ j ] ); 22 } /* fim do for */ return 0; 25 2 } /* fim da funcao main */ (1 de 2 ) SIZE é substituída por 10 pelo compilador, o array s tem 10 elementos for inicializa cada elemento do array em separado Posicao Valor fig0_05.c (2 de 2 ) 15 Erro comum de programação Terminar uma directiva de pré-processamento #define ou #include com ; 1 As directivas de pré-processamento em C não são instruções.

5 17 18 Erro comum de programação Observação Atribuir um valor a uma constante simbólica numa instrução é um erro de sintaxe. Uma constante simbólica não é uma variável. Não é reservado espaço em memória para ela pelo compilador como acontece com as variáveis. Definir o tamanho de cada array como uma constante simbólica torna os programas mais fáceis de adaptar (redimensionáveis e expansíveis) Boa Prática de Programação Boa Prática de Programação Usar só letras maiuscúlas para os nomes das constantes simbólicas. Isto evidencia estas constantes e lembra que as constantes não são variáveis. Se precisar de usar várias palavras no nome duma constante simbólica use underscores a separar as palavras para mais fácil leitura.

6 1 /* Fig..: fig0_0.c 2 Calcular a soma dos elementos de um array */ 4 #define SIZE int main( void ) 8 { 9 /* usar lista de inicializadores para inicializar os elementos do array a */ 10 int a[ SIZE ] = { 1, 3, 5, 4, 7, 2, 99, 1, 45, 7, 89, 45 }; 11 int i; /* contador */ 12 int total = 0; /* soma dos elementos */ /* soma os elementos do array a */ 15 for ( i = 0; i < SIZE; i++ ) { 1 total += a[ i ]; 17 } /* fim do for */ printf( "A soma dos elementos do array eh %d\n", total ); return 0; } /* fim da funcao main */ A soma dos elementos do array eh 383 Ciclo for adidiona cada elemento à variável total fig0_0.c 21 Problema: Temos 40 respostas a um inquérito em que cada resposta pode tomar um valor entre 1 e 10 inclusive. Pretendemos encontrar a frequência de cada resposta, isto é, quantas respostas tiveram o valor 1, quantas tiveram o valor 2, etc. 1 /* Fig..7: fig0_07.c 2 calcular as frequencias de respostas (pontuacao) em inqueritos */ 4 #define DIM_RESPOSTAS 40 /* definir tamanhos dos vectores */ 5 #define DIM_FREQUENCIAS int main( void ) 9 { 10 int conta; /* contador para percorrer as respostas */ 11 int pontos; /* contador para percorrer frequencias 1-10 */ 12 int valordaresposta; 13 /* inicializar os contadores de frequencias a 0 */ 14 int frequencia[ DIM_FREQUENCIAS ] = { 0 }; 15 1 /* respostas dos alunos */ 17 int resposta[ DIM_RESPOSTAS ] = { 1, 2,, 4, 8, 5, 9, 7, 8, 10, 18 1,, 3, 8,, 10, 3, 8, 2, 7,, 5, 7,, 8,, 7, 5,,, 19 5,, 7, 5,, 4, 8,, 8, 10 }; /* para cada resposta seleccionar o elemento do array resposta 22 e usar esse valor como indice do array frequencia para determinar 23 a pontuacao cuja frequencia deve ser incrementada */ 24 for ( conta = 0; conta < DIM_RESPOSTAS; conta++ ) { 25 valordaresposta = resposta[ conta ]; 2 ++frequencia[ valordaresposta ]; 27 } /* fim do for */ 28 fig0_07.c (1 de 2 ) frequencia é um array com 11 elementos resposta é um array com 40 elements e é inicializado Indice do array frequencia é dado pelo valor do elemento do array resposta printf("pontuacao Frequencia\n" ); /* output das frequencias num formato tabular */ 32 for ( pontos = 1; pontos < DIM_FREQUENCIAS; pontos++ ) { 33 printf( "%d%17d\n", pontos, frequencia [ pontos ] ); 34 } /* end for */ 35 3 return 0; } /* end main */ Pontuacao Frequencia fig0_07.c (2 de 2 ) 24

7 1 /* Fig..8: fig0_08.c 2 Programa para imprimir um histograma */ 4 #define DIMENSAO int main( void ) 8 { 9 /* usar uma lista de incializadores para inicializar frequencias */ 10 int frequencia [ DIMENSAO ] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 }; 11 int i; /* contador para percorrer os elementos do array */ 12 int j; /* conta o numero de asteriscos em cada barra do histograma */ printf( " Posicao Valor Histograma\n" ); 15 1 /* para cada elemento do vector frequencia escreve uma barra do histograma */ 17 for ( i = 0; i < DIMENSAO; i++ ) { 18 printf( "%7d%13d ", i, frequencia[ i ]) ; for ( j = 1; j <= frequencia[ i ]; j++ ) { /* escreve uma barra */ 21 printf( "* ); 22 } /* fim do for interno */ printf( "\n" ); /* fim duma barra do histograma */ 25 } /* fim do for sobre os elementos do array */ 2 27 return 0; } /* fim da funcao main */ fig0_08.c (1 de 2 ) O ciclo for interno escreve frequencia[ i ] asteriscos na i-ésima linha 25 Posicao Valor Histograma 0 19 ******************* 1 3 *** 2 15 *************** 3 7 ******* 4 11 *********** 5 9 ********* 13 ************* 7 5 ***** 8 17 ***************** 9 1 * fig0_08.c (2 de 2 ) 2.5 Passar vectores para funções 27.5 Passar vectores para funções 28 Para passar um vector como argumento duma função especifica-se o nome do vector sem usar os parêntesis rectos: int meuarray[ 24 ]; passar meuarray como argumento para minhafuncao minhafuncao( meuarray, 24 ); - A dimensão do vector (ou número de elementos a utilizar) também costuma ser passada Os vectores são passados por referência: - O nome do array é o endereço do primeiro elemento - A função fica a saber onde o array está guardado e pode modificar os locais da memória correspondentes Protótipo da função - void minhafuncao( int b[], int dimarray ); Notar que o parâmetro que corresponde a um vector não especifica o tamanho do vector - int b[]

8 1 /* Fig..12: fig0_12.c 2 O nome de um vector é o mesmo que &vector[ 0 ] */ 4 5 /* função main inicia o programa */ int main( void ) 7 { 8 char vectorexemplo[ 5 ]; /* definir um vector com dimensão 5 */ 9 10 printf( " vector = %p\n&vector[0] = %p\n &vector = %p\n", 11 vectorexemplo, &vectorexemplo[ 0 ], &vectorexemplo ); return 0; } /* fim main */ vector = 0012FF78 &vector[0] = 0012FF78 &vector = 0012FF78 fig0_12.c.5 Passar vectores para funções Também é possível passar elementos de um vector como argumentos (escalares) Passagem de um elemento de um vector, ex: int outrafuncaominha( int valor ); int meuarray[ 24 ]; int resultado; resultado = outrafuncaominha( meuarray[ 3 ] ); Um elemento é passado por valor: É indicado como argumento o elemento que está numa posição meuarray[ 3 ] A função outrafuncaominha recebe uma cópia do valor que está em meuarray[ 3 ] A função não fica a saber onde o array está guardado e não modifica o local da memória correspondente 30.5 Passar vectores para funções Se quisermos alterar um dado elemento, temos de passar o array todo, e a posição do elemento a alterar, ex: void modificaelemento( int vector[], int dimensao, int posicao ); int meuarray[ 24 ]; modificaelemento( meuarray, 24, 3 ); É passado por valor: A dimensão (24), a posição (3) É passado por referência: O vector meuarray 31 Boa Prática de Programação Passar vectores por referência faz sentido por uma questão de desempenho. Se os vectores fossem passados por valor, ter-se-ia de passar uma cópia de cada elemento. Para vectores de grande dimensão isso consumiria muito tempo e seria necessário gastar muito espaço de memória para guardar as cópias.

9 1 /* Fig..13: fig0_13.c 2 Passagem de vectores e elementos de vectores para funcoes */ 4 #define DIMENSAO 5 5 /* prototipos */ 7 void modificavector( int vector[], int dimensao ); 8 void modificaelemento( int elem ); 9 10 /* funcao main inicia execucao */ 11 int main( void ) 12 { 13 int meuvector[ DIMENSAO ] = { 0, 1, 2, 3, 4 }; /* inicializa meuvector */ 14 int i; /* contador */ 15 1 printf( "Efeitos de passar um vector por referencia:\n\nthe " 17 "Valores do vector original:\n" ); /* imprimir o vector */ 20 for ( i = 0; i < DIMENSAO; i++ ) { 21 printf( "%3d", meuvector[ i ] ); 22 } printf( "\n" ); 25 2 /* passar vector meuvector para modificavector por referencia */ 27 modificavector( meuvector, DIMENSAO ); printf( "Valores do vector modificado:\n" ); 30 fig0_13.c (1 of 3 ) Array meuvector é passado a modificavector passando só o nome 31 /* imprime vector modificado */ 32 for ( i = 0; i < DIMENSAO; i++ ) { 33 printf( "%3d", meuvector[ i ] ); 34 } 35 3 /* imprime o valor de meuvector[ 3 ] */ 37 printf( "\n\n\nefeito de passar um elemento por valor: " 38 "\n\meuvector[ 3 ] = %d\n", meuvector[ 3 ] ); modificaelemento( meuvector[ 3 ] ); /* passa elemento meuvector[ 3 ] */ /* imprime elemento meuvector[ 3 ] */ 43 printf( "meuvector[ 3 ] apos modificaelemento = %d\n", meuvector[ 3 ] ); return 0; 4 47 } /* na funcao modificavector, vector referencia o vector que for passado 50 pelo seu endereco em memoria */ 51 void modificavector( int vector[], int dimensao ) 52 { 53 int j; /* contador */ /* multiplica cada elemento por 2 */ 5 for ( j = 0; j < dimensao; j++ ) { 57 vector[ j ] *= 2; 58 } 59 0 } /* fim funcao modificavector */ fig0_13.c (2 of 3 ) 1 2 /* na funcao modificaelemento, elem é uma copia local do valor passado 3 a partir da funcao invocadora (neste caso vai ser a main) */ 4 void modificaelemento( int elem ) 5 { elem *= 2; /* multiplica o parametro elem por 2 */ 7 printf( "Valor de elem em modificaelemento = %d\n", elem ); 8 } /* fim da funcao modificaelemento */ Efeitos de passar um vector por referencia: Valores do vector original: Valores do vector modificado: Efeito de passar um elemento por valor: meuvector[ 3 ] = Valor de elem em modificaelemento = 12 meuvector[ 3 ] apos modificaeleemnto = fig0_13.c (3 of 3 ).7 Calcular a média, o máximo e a moda usando vectores Média é a soma dos valores sobre o número de valores Máximo é o maior valor no vector Moda é o valor com maior número de ocorrências maior frequência 1, 1, 1, 2, 3, 3, 4, 5 1 é a moda 3

10 Pesquisar valor num vector.4 Cadeias de Caracteres Procurar num vector um valor chave Cadeias de caracteres (strings) são vectores de caracteres Pesquisa linear Simples Uma cadeia de caracteres "Alegria" é um vector de caracteres, pode ser inicializada usando uma sequência de caracteres entre aspas (um literal). Compara cada elemento do vector com o valor chave Útil em vectores de pequena dimensão e não ordenados char cadeia[] = "Alegria"; É equivalente a char cadeia[] = { 'A', 'l', 'e', 'g', 'r', 'i', 'a', '\0' }; -O carácter null representado por '\0' termina as cadeias de caracteres -O vector cadeia tem 8 elementos Podemos aceder a caracteres individuais cadeia[ 3 ] é o carácter 'g'.4 Cadeias de Caracteres 39.4 Cadeias de Caracteres Nome do array é o endereço do array & não é necessário quando lemos uma cadeia com scanf scanf( "%s", cadeia ); scanf, com argumento cadeia de caracteres, lê caracteres até que seja encontrado um dos seguintes caracteres: space (espaço em branco), tab (marca de tabulação), newline (marca de fim de linha) ou EOF (end-of-file). 0 Exemplo: 'P' 1 'i' char minhastring[ 20 ]; scanf( "%19s", minhastring ); o utilizador introduz Pinto da Costa O que fica guardado no array: 2 'n' 3 't' 4 'o' 5 '\0' Cuidado: não ultrapassar o limite do array pois o C permite isso, mas causa erros. Pode destruir dados. Uma solução possível: char minhastring[ 20 ]; scanf( "%19s", minhastring ); - Imprimindo: printf( "%s", minhastring ); imprime Pinto O printf escreve todos os elementos do vector até encontrar o carácter null. Atenção: a string tem de ter algum elemento '\0' Pearson Education, Inc. All rights reserved. Adaptado para PROG1 por Carlos Ana Lourenço Respício e (DIFCUL) Graça Gaspar (DIFCUL)

11 1 /* Fig..10: fig0_10.c 2 Cadeias de caracteres como vectores */ 4 5 int main( void ) 7 { 8 char cadeia1[ 20 ]; /* reserva 20 caracteres */ 9 char cadeia2[] = "Bom dia alegria!"; /* reserva 17 caracteres */ 10 int i; /* contador */ /* le uma cadeia introduzida pelo utilizador para array cadeia1 */ 13 printf("introduza uma cadeia de caracteres: "); 14 scanf( "%19s", cadeia1 ); /* input acaba com espaco em branco */ 15 1 /* escreve as cadeias */ 17 printf( "cadeia1 = %s\ncadeia2 = %s\n" 18 "cadeia1 com espacos entre os caracteres = \n", 19 cadeia1, cadeia2 ); /* escreve caracteres ate que o caracter null seja encontrado */ 22 for ( i = 0; i < 20 && cadeia1[ i ]!= '\0'; i++ ) { 23 printf( "%c ", cadeia1[ i ] ); 24 } /* fim for */ 25 2 printf( "\n" ); return 0; } /* end main */ fig0_10.c (1 de 2 ) cadeia2 é um array definido com um carácter em cada elemento, são 17 caracteres incluindo o null /0 foi inicializada com o literal Bom dia alegria! for imprime os caracteres de cadeia1 com espaço entre eles Notar a condição de continuação: É o caracter null que sinaliza o fim da string e não a última posição do vector 41 Introduza uma cadeia de caracteres: Alunos, calem-se! cadeia1 = Alunos, cadeia2 = Bom dia alegria! cadeia1 com espacos entre os caracteres = A l u n o s, fig0_10.c (2 de 2 ) Arrays bi-dimensionais int a[ 3 ] [ 4 ]; Arrays com dois índices Tabelas com várias linhas e colunas ( array m por n ) São como matrizes: especificamos linha, depois coluna Declaração int b[ 2 ][ 2 ]; LInha 0 Linha 1 Linha 2 Coluna 0 Coluna 1 Coluna 2 Coluna 3 É um array com 2 linhas e 2 colunas; Referenciar os elementos Índice da coluna Índice da linha Nome do array Especificar a linha e depois a coluna - b[0][1] = 23; - printf( "%d", b[ 0 ][ 1 ] ); Fig..20 Array bi-dimensional com três linhas e quatro colunas.

12 45 4 Erro Comum de Programação.9 Arrays bi-dimensionais Inicialização Referenciar um elemento de um array bi-dimensional por a[ x, y ] em vez de a[x][y]. int b[2][2]={{1,2},{3,4}}; Inicializadores agrupam-se por linha entre chavetas Se não forem suficientes, os não especificados são colocados a zero - int b[2][2]={{1},{3,4}}; O C interpreta a[x,y]como sendo a[ y ] e não causa erro de sintaxe. 1 /* Fig..21: fig0_21.c 2 Inicialização de vectores multi-dimensionais */ 4 5 /* escreve o conteudo do vector a com 3 colunas e n linhas */ void escrevearray( int a[][ 3 ], int n ); 7 8 int main( void ) 9 { 10 /* inicializar array1, array2, array3 */ 11 int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, } }; 12 int array2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 }; 13 int array3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } }; printf( "Valores no array1 por linha:\n" ); 1 escrevearray( array1, 2 ); printf( " Valores no array2 por linha:\n" ); 19 escrevearray( array2, 2 ); printf( " Valores no array3 por linha:\n" ); 22 escrevearray( array3, 2 ); return 0; 25 2 } /* fim main */ 27 fig0_21.c (1 de 2 ) todos os elementos de array1 são inicializados array2 e array3 são inicializados parcialmente /* escreve o conteudo do vector a com 3 colunas e n linhas */ 29 void escrevearray( int a[][ 3 ], int n ) 30 { 31 int i; /* contador para as linhas */ 32 int j; /* contador para as colunas */ /* ciclo que percorre as linhas */ 35 for ( i = 0; i < n; i++ ) { 3 37 /* imprime os valores em coluna */ 38 for ( j = 0; j <= 2; j++ ) { 39 printf( "%d ", a[ i ][ j ] ); 40 } /* fim for interno */ printf( "\n" ); /* inicia uma nova linha */ 43 } /* fim for externo */ } /* fim escrevearray */ Valores no array1 por linha: Valores no array2 por linha: Valores no array3 por linha: fig0_21.c (2 de 2 ) 48

13 1 /* Fig..22: fig0_22.c - Vectores bi-dimensionais 2 notas de varios alunos em multiplos exames */ 4 #define DIM_ALUNOS 3 5 #define DIM_EXAMES 4 7 /* prototipos */ 8 int minimo( int notas[][ DIM_EXAMES ], int alunos, int provas ); 9 int maximo( int notas[][ DIM_EXAMES ], int alunos, int provas ); 10 double media( int notas[], int provas ); 11 void escrevearray( int notas[][ DIM_EXAMES ], int alunos, int provas ); int main( void ) 15 { 1 int aluno; /* contador */ /* inicializa notas de tres alunos (linhas) */ 19 int notasalunos[ DIM_ALUNOS ][ DIM_EXAMES ] = 20 { { 14, 12, 1, 12 }, 21 { 19, 18, 18, 17 }, 22 { 10, 17, 17, 15 } }; /* imprimir as notas dos alunos */ 25 printf( "Notas:\n" ); 2 escrevearray(notasalunos, DIM_ALUNOS, DIM_EXAMES ); 27 Cada linha no array corresponde às notas de um aluno fig0_22.c (1 de ) /* determina a nota mais baixa e a nota mais alta */ 29 printf( "\n\nmenor nota: %d\nmaior nota: %d\n", 30 minimo( notasalunos, DIM_ALUNOS, DIM_EXAMES ), 31 maximo( notasalunos, DIM_ALUNOS, DIM_EXAMES) ); /* calcula a media de notas de cada aluno */ 34 for ( aluno = 0; aluno < DIM_ALUNOS; aluno++ ) { 35 printf( "A media das notas do aluno %d eh %.2f\n", 3 aluno, media( notasalunos[ aluno ], DIM_EXAMES ) ); 37 } /* fim for */ return 0; } /* fim main */ 42 fig0_22.c (2 de ) Para a função media passa-se a linha aluno do array notasalunos /* Nota minima no vector notas onde numero de linhas eh alunos */ 44 e numero de colunas eh provas */ 45 int minimo( int notas[][ DIM_EXAMES ], int alunos, int provas ) { 4 int i; /* contador para os alunos */ 47 int j; /* contador para as provas */ 48 int minnota = 20; /* inicializa com o maior valor possivel de nota */ /* percorre as linhas de notas */ 51 for ( i = 0; i < alunos; i++ ) { /* percorre as colunas da linha i */ 54 for ( j = 0; j < provas; j++ ) { 55 5 if ( notas[ i ][ j ] < minnota ) { 57 minnota = notas[ i ][ j ]; 58 } /* fim if */ 59 0 } /* fim for interno */ 1 2 } /* fim for externo */ 3 4 return minnota; /* devolve a nota minima */ 5 } /* fim funcao minimo */ 7 fig0_22.c (3 de ) 51 8 /* Nota maxima no vector notas onde numero de linhas eh alunos 9 e o numero de colunas eh provas */ 70 int maximo( int notas[][ DIM_EXAMES ], int alunos, int provas ) { 71 int i; /* contador para alunos */ 72 int j; /* contador para provas */ 73 int maxnota = 0; /* nota maxima - inicializa com o menor valor possivel */ /* percorre as linhas de notas */ 7 for ( i = 0; i < alunos; i++ ) { /* percorre as colunas de notas na linha i */ 79 for ( j = 0; j < provas; j++ ) { if ( notas[ i ][ j ] > maxnota ) { 82 maxnota = notas[ i ][ j ]; 83 } /* fim if */ } /* fim for interno */ 8 87 } /* fim for externo */ return maxnota; /* devolve a nota maxima */ } /* fim funcao maximo */ 92 fig0_22.c (4 de ) 52

14 93 /* Media das notas de um dado aluno passadas no vector notasdealuno 94 com dimensao provas */ 95 double media( int notasdealuno[], int provas ) { /* escreve as notas no formato de tabela */ 118 for ( i = 0; i < alunos; i++ ) { int i; /* contador de provas */ 120 /* escreve numero do aluno */ 97 int total = 0; /* soma das notas */ 121 printf( "\nnotasdoaluno[%d] ", i ); /* calcula a soma das notas */ 100 for ( i = 0; i < provas; i++ ) { 101 total += notasdealuno[ i ]; fig0_22.c (5 de ) /* escreve as notas do aluno i */ 124 for ( j = 0; j < provas; j++ ) { 125 printf( "%5d", notas[ i ][ j ] ); fig0_22.c ( de ) 102 } /* end for */ 12 } /* fim for interno */ return ( double ) total / provas; /* media */ 128 } /* fim for externo */ } /* fim funcao media */ } /* fim funcao escrevearray */ /* Escreve o array notas com alunos linhas e provas colunas */ 109 void escrevearray( int notas[][ DIM_EXAMES ], int alunos, int provas ) 110 { 111 int i; /* contador para alunos */ 112 int j; /* contador para as provas */ /* escreve o cabecalho das colunas */ 115 printf( " [0] [1] [2] [3]" ); Notas: [0] [1] [2] [3] notasdoaluno[0] notasdoaluno[1] notasdoaluno[2] Menor nota: 10 Maior nota: 19 A media das notas do aluno 0 eh A media das notas do aluno 1 eh A media das notas do aluno 2 eh 14.75

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

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 à Programação em C

Introdução à Programação em C Introdução à Programação em C Tabelas Resumo Aulas Anteriores Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Leitura e Escrita de Caracteres Input/Output Leitura

Leia mais

Introdução à Programação em C (II)

Introdução à Programação em C (II) Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

Métodos Computacionais em Física

Métodos Computacionais em Física Métodos Computacionais em Física Tatiana G. Rappoport tgrappoport@if.ufrj.br 214-2 Variáveis indexadas (arrays) Diversos problemas requerem o uso de vetores ou matrizes: Um conjunto de dados do mesmo tipo

Leia mais

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Vetores e Matrizes Prof: Luciano Barbosa Recapitulando: Funções 2 Recapitulando: Função Void 3 Recapitulando: Escopo das Variáveis Referência à variável global A variável de escopo

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

Leia mais

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Linguagem C Aula de hoje Introdução Vetores (revisão) Relacionamento entre vetores e ponteiros Professor: André de Carvalho Definição: coleção de valores de dados individuais com

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte III Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Funções Classes de armazenamento

Leia mais

Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação. Cap. 8 Endereçamento de Memória Endereçamento de Memória

Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação. Cap. 8 Endereçamento de Memória Endereçamento de Memória Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação Cap. 8 Endereçamento de Memória Endereçamento de Memória Sumário: O que nós já sabemos sobre endereçadores (ou apontadores

Leia mais

Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função.

Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função. Engenharia informatica Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função. #include Int e_caracter (char c) { Return(

Leia mais

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 7 Sumário: Classificação de tipos de dados Características gerais de tipos de dados compostos Definição de array (ou tabela)

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Aula 3 Constantes e funções de E/S

Aula 3 Constantes e funções de E/S Programação I Aula 3 e funções de E/S Prof. Laura Silva de Assis e Prof. Luis Carlos Retondaro Engenharia de Computação 2o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação

Leia mais

Funções de Entrada e Saída

Funções de Entrada e Saída inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2 Programação de Computadores II Cap. 7 Cadeias de Caracteres 1/2 Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 7 Vetores ou Matrizes Unidimensionais Matrices Multidimencionais Susana M Iglesias 1 INTRODUÇÃO Um vetor geralmente é associado a uma lista ou conjunto de elementos similares,

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br

Leia mais

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ Ponteiros em C Adriano Joaquim de Oliveira Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Declaração Incrementando e Decrementando

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

Declarações. Tipos de Acesso, Inicialização e Constantes

Declarações. Tipos de Acesso, Inicialização e Constantes Declarações Tipos de Acesso, Inicialização e Constantes Objetivo Continuação... ESPECIFICADOR de TIPO de ACESSO const e volatile Além disso, discutiremos as regras gerais do processo de INICIALIZAÇÃO de

Leia mais

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Profa Rosana Braga 1º semestre de 2010 1 Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c

Leia mais

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

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Linguagem de Programação I. Aula 08 Linguagem C: Arrays

Linguagem de Programação I. Aula 08 Linguagem C: Arrays Linguagem de Programação I Aula 08 Linguagem C: Arrays Da Aula Anterior Tipos de dados básicos em C Modificadores de tipo Declaração de Variáveis Operadores em C Estruturas de Controle Nesta Aula Arrays

Leia mais

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

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Controlo de Execução. K&R: Capitulo 3

Controlo de Execução. K&R: Capitulo 3 Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010

Leia mais

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

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

11 - Estrutura de um programa em C

11 - Estrutura de um programa em C 11 - Estrutura de um programa em C directivas para o compilador { main ( ) declarações instruções } -É possível utilizar comentários, exemplo: /* Comentário */ que não são traduzidos pelo compilador, pois

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Funções em Linguagem C Parte II

Funções em Linguagem C Parte II Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis

Leia mais

O que é um apontador em C (type pointer in C)?

O que é um apontador em C (type pointer in C)? O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora

Leia mais

Aula 03: Introdução a C

Aula 03: Introdução a C Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um

Leia mais

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Estruturas de Dados. Profa. Juliana Pinheiro Campos Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória

Leia mais

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Programação Estruturada Prof. Rodrigo Hausen  Organização e Gerenciamento de Memória Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];

Leia mais

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays Programação Orientada a Objetos para Redes de Computadores Elias Mitre http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Arrays Estruturas de dados que contêm itens

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Linguagem C Professor: André de Carvalho Aula de hoje Introdução Tipos compostos Tipo enumeração Conclusão Tipos compostos A Linguagem C permite criar tipos de dados definíveis

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação MIEA 1º Semestre Frequência Resolução 13/12/2016 1. Escreva uma expressão lógica em linguagem C para cada uma das seguintes condições: (a) o valor da variável

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

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

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

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

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

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial

Leia mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções

Leia mais

Programação I Funções. Prof. Carlos Alberto

Programação I Funções. Prof. Carlos Alberto Programação I Funções Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Funções Funções são blocos de códigos que podem ser nomeados e chamados de dentro de um programa; Funções

Leia mais

Linguagem C. Prof.ª Márcia Jani Cícero

Linguagem C. Prof.ª Márcia Jani Cícero Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Programação de Computadores II. Cap. 7 Cadeias de Caracteres Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

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

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

MATRIZES. Luís Charneca.

MATRIZES. Luís Charneca. MATRIZES Luís Charneca luis.charneca@gmail.com Matrizes - Vectores (1) Vectores nada mais são que matrizes unidimensionais. É importante notar que vectores, matrizes bidimensionais e matrizes de qualquer

Leia mais

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz Vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de dados de um certo tipo; por esta razão, também são conhecidos como estruturas homogêneas de dados. Internamente, um vetor

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

Leia mais

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings) Computação 2 Aula 3 Vetores de caracteres (strings) Diego Addan diegoaddan@gmail.com Vetor de caracteres (Strings) Uma cadeia de caracteres, mais conhecida como string, é uma seqüência de caracteres (letras

Leia mais

A sintaxe para se declarar uma variável do tipo ponteiro é dada por:

A sintaxe para se declarar uma variável do tipo ponteiro é dada por: Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.

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

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada

Leia mais

Ponteiros. Introdução

Ponteiros. Introdução Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na

Leia mais

LINGUAGEM C: PONTEIROS

LINGUAGEM C: PONTEIROS LINGUAGEM C: PONTEIROS Prof. André Backes DEFINIÇÃO Variável É um espaço reservado de memória usado para guardar um valor que pode ser modificado pelo programa; Ponteiro É um espaço reservado de memória

Leia mais

Linguagem C (continuação)

Linguagem C (continuação) Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João

Leia mais

Introdução. Ponteiros

Introdução. Ponteiros Introdução O correto entendimento e uso de ponteiros é crítico para um programador C. Há três razões para isso: 1. Ponteiros fornecem os meios pelos quais as funções podem modificar seus argumentos; 2.

Leia mais

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 11 Estruturas (Structs) Structs

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 11 Estruturas (Structs) Structs Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 11 Estruturas (Structs) Structs Sumário: Revisitação à taxonomia de tipos de dados Características gerais de tipos

Leia mais

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica 10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento

Leia mais

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

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

Funções getchar() e putchar()

Funções getchar() e putchar() Sumário Tipos elementares Inteiro, Carácter, Real, Booleano, Void Variáveis e os operadores & e * Constantes Funções printf() e scanf() Opções de formatação Funções getchar() e putchar() Programação 2007/2008

Leia mais

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular

Leia mais

Vetores. e o programa deverá ler os valores separadamente:

Vetores. e o programa deverá ler os valores separadamente: Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.

Leia mais

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do

Leia mais

Variáveis e Operadores em C

Variáveis e Operadores em C Variáveis e Operadores em C Luís Charneca luis.charneca@gmail.com NOMES DE VARIÁVEIS (1) As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: o nome deve começar com uma letra

Leia mais

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 09 Estruturas

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 09 Estruturas Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre T. 09 Estruturas 1 Sumário: 2 Taxonomia de tipos de dados Tipos de Dados void Tipos Simples Tipos Compostos Tipos Numéricos

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 11 Prof. Daniel Cavalcanti Jeronymo Vetores (arrays). Vetores de caracteres (strings). Busca em vetores. Matrizes (arrays bidimensionais e multidimensionais). Universidade

Leia mais

O vetor é provavelmente um dos mais simples e importantes tipos agregados. Através do seu uso, podemos

O vetor é provavelmente um dos mais simples e importantes tipos agregados. Através do seu uso, podemos Cláudio C. Rodrigues Faculdade da Computação -UFU LINGUAGEM C 04: VETORES, STRINGS E MATRIZES Faculdade da Computação - UFU 1 Introdução & Objetivo O vetor é provavelmente um dos mais simples e importantes

Leia mais

Ponteiros. prof. Fabrício Olivetti de França

Ponteiros. prof. Fabrício Olivetti de França Ponteiros prof. Fabrício Olivetti de França Anteriormente em prog. estrut. Vimos que as variáveis representando arrays em C armazenam apenas um apontador para o endereço de memória contendo os valores

Leia mais

Mais sobre Ponteiros em C

Mais sobre Ponteiros em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Mais sobre Ponteiros em C Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO

Leia mais

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

Aula 20 - Ponteiros. Prof. Laura Silva de Assis. Engenharia de Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Aula 20 - Ponteiros. Prof. Laura Silva de Assis. Engenharia de Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca Programação Aula 20 - Ponteiros Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2 o semestre -

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 30/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de um

Leia mais