Arrays. IPC2 1999/2000 F. Nunes Ferreira. Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994

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

Download "Arrays. IPC2 1999/2000 F. Nunes Ferreira. Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994"

Transcrição

1 Arrays IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994

2 Arrays Introdução 2 Array é uma estrutura de dados, todos do mesmo tipo. Vectores (1D) e Matrizes (2D, 3D,...) são exemplos de arrays Estrutura/Struct é uma estrutura de dados, os quais podem ser de tipos diferentes Ambos os casos são estruturas que, enquanto existem, mantêm o mesmo tamanho. Mais tarde, também serão consideradas estruras dinâmicas (listas, filas de espera, pilhas e árvores)

3 Arrays Um exemplo 3 Um array de 6 elementos c[0] 6 - O primeiro elemento é c[0]... c[1] 742 c[2] c[4 + 1] += 2; faz c[5] = 20 c[3] 0 c[4] 32 c[5] 18 Declaração int c[6];

4 Arrays Declarações 4 Declaração com inicialização int c[6] = 6, 742, -15, 0, 32, 18; int n[30] = 9, 45; /* os 2 primeiros elementos de n[] são inicializados com 9 e 45, e os restantes 28 com 0 */ int m[] = 6, 742, -15; /* cria e inicializa um array com 3 elementos */

5 Arrays Um exemplo 5 Os elementos de um array são inicializados com c[j] = * j; #include <stdio.h> #define SIZE 10 int main(void) int c[size], j; for (j = 0; j <= SIZE - 1; j++) c[j] = * j; printf("%s%10s\n", "Indice", "Valor"); for (j = 0; j <= SIZE - 1; j++) printf("%6d%10d\n", j, c[j]); return 0; Indice Valor

6 Numa turma de 40 alunos, foi feito um inquérito à qualidade da comida de uma cantina: 1- má; excelente. As respostas ao inquérito são colocadas num array de 40 elementos e um programa sumariza o resultado numa tabela de 10 entradas #include <stdio.h> #define N_ALUNOS 40 #define NIVEIS 11 int main(void) int resposta, nivel; int respostas[n_alunos] = 5, 6, 4, 8, 4, 10, 8, 4, 5, 4, 5, 2, 5, 1, 5, 7, 3, 5, 9, 5, 7, 6, 6, 5, 5, 3, 6, 7, 6, 8, 2, 5, 7, 6, 4, 3, 9, 5, 3, 7; int frequencia[niveis] = 0; for (resposta = 0; resposta <= N_ALUNOS - 1; resposta++) ++frequencia[respostas[resposta]]; printf("%s%10s\n", "Nivel", "Votacao"); Nivel Votacao for (nivel = 1; nivel <= NIVEIS - 1; nivel++) printf("%5d%10d\n", nivel, frequencia[nivel]); return 0;

7 Arrays Algumas considerações 7 Definir o tamanho dos arrays com constantes simbólicas torna os programas mais portáveis Utilizar letras maiúsculas para as constantes simbólicas lembra os programadores que estas constantes não variáveis Garantir que nenhuma referência a um array se fará para além dos seus limites

8 Arrays Cadeia de caracteres (string) 8 Uma cadeia de caracteres (string) é um array de caracteres char experienc1[] = "um"; cria e inicializa um array de comprimento 3, com os caracteres 'u' 'm' e '\0'. É equivalente a char experienc1[] = 'u', 'm', '\0'; Quando se preenche um array de caracteres a partir do teclado, é necessário prever espaço no array até ao primeiro caracter whitespace (ver exemplo seguinte)

9 Inicialização de cadeias de caracteres através de uma constante literal e do teclado #include <stdio.h> int main(void) char cadeia1[20], cadeia2[] = "constante literal"; int i; printf("indicar uma cadeia: "); scanf("%s", cadeia1); printf("cadeia1 e': %s\ncadeia2 e': %s\n", cadeia1, cadeia2); & não é necessário for (i = 0; cadeia1[i]!= '\0'; i++) printf("%c ", cadeia1[i]); printf("\n"); return 0; Indicar uma cadeia: uma cadeia cadeia1 e': uma cadeia2 e': constante literal u m a

10 Arrays estáticos e dinâmicos #include <stdio.h> void iniestatica(void); void inidinamica(void); int main(void) printf("primeira chamada:\n"); iniestatica(); inidinamica(); printf("\n\nsegunda chamada:\n"); iniestatica(); inidinamica(); return 0; void iniestatica(void) static int a[] = 3, 2, 1; for (i = 0; i <= 2; i++) printf("a[%d] = %d ", i, a[i] += 5); void inidinamica(void) int b[] = 3, 2, 1; for (i = 0; i <= 2; i++) printf("b[%d] = %d ", i, b[i] += 5); Primeira chamada: a[0] = 8 a[1] = 7 a[2] = 6 b[0] = 8 b[1] = 7 b[2] = 6 Segunda chamada: a[0] = 13 a[1] = 12 a[2] = 11 b[0] = 8 b[1] = 7 b[2] = 6

11 Arrays Arrays como argumentos de funções 11 C passa arrays completos para funções, simulando uma chamada por referência. Boa solução em termos de desempenho O nome de um array corresponde ao endereço do seu primeiro elemento, &nome-array[0] A especificação de conversão %p é utilizada na visualização de apontadores em hexadecimal #include <stdio.h> int main(void) char cadeia[5]; printf(" cadeia = %p\n&cadeia[0] = %p\n", cadeia, &cadeia[0]); cadeia = 0064FDF0 return 0; &cadeia[0] = 0064FDF0

12 #include <stdio.h> #define TAMANHO 5 void modificarray(int [], int); int main(void) int i, a[5] = 0, 10, 20, 30, 40; printf("valores originais:\n"); for (i = 0; i <= TAMANHO - 1; i++) printf("%4d", a[i]); modificaarray(a, TAMANHO); printf("\nvalores modificados:\n"); for (i = 0; i <= TAMANHO - 1; i++) printf("%4d", a[i]); Valores originais: Valores modificados: return 0; void modificaarray(int x[], int comprimento) int j; for (j = 0; j <= comprimento - 1; j++) x[j] *= 5; O que resultaria se fosse: modificaarray(&a[2], TAMANHO - 2);

13 Arrays Qualificador const aplicado a arrays 13 Qualificador const utilizado para evitar alterações (não desejadas) de arrays dentro de funções void tentamodificar(const int []); int main(void) int a[] = 10, 20, 30; tentamodificar(a);... return 0; void tentamodificar(const int b[]) b[0] *= 10; b[1] *= 20; b[2] *= 30; Erros de compilação, por tentativa de modificar constantes!... Desempenho da referência, segurança da passagem por valor

14 Arrays Ordenação - bubble sort 14 O array vai ser percorrido tantas vezes quantos os seus elementos menos 1. Em cada percurso o maior valor encontrado é puxado para o final... Valores originais: Vai comparando Valores em ordenacao: pares de valores e trocando-os entre si, se necessário Pouco eficiente, mas fácil de programar

15 #include <stdio.h> #define TAMANHO 10 int main(void) int i, passo, temp; int array[tamanho] = 5, 1, 7, 3, 2, 4, 0, 9, 8, 6; printf("valores originais:\n"); for (i = 0; i <= TAMANHO - 1; i++) printf("%3d", array[i]); printf("\nvalores em ordenacao:\n"); for (passo = 1; passo <= TAMANHO - 1; passo++) for (i = 0; i <= TAMANHO - 2; i++) if (array[i] > array[i + 1]) temp = array[i]; array[i] = array[i + 1]; array[i + 1] = temp; for (i = 0; i <= TAMANHO - 1; i++) printf("%3d", array[i]); printf("\n"); return 0;

16 Arrays Ordenação - bubble sort 16 Uma versão em que o bubble sort só trata da ordenação #include <stdio.h> #define DIM_MAX 100 #define N_COL 6 int levector(int vec[], int dim); void visuvector(const int vec[], int dim, int ncol); void bublesort(int vec[], int dim); int main(void)... - ler nº inteiros a ordenar - ler vector - visualizar vector a ordenar - ordenar vector - visualizar vector ordenado

17 int main(void) int valores[dim_max], num; do printf("\nnumero valores (< %d):\n", DIM_MAX); scanf("%d", &num); while (num < 1 num > 100); printf("\nleitura dos elementos do vector:"); levector(valores, num); printf("\n\nvector a ordenar:\n"); visuvector(valores, num, N_COL); bublesort(valores, num); printf("\nvector ordenado:\n"); visuvector(valores, num, N_COL); return 0;

18 int levector(int vec[], int dim) int i; for(i = 0; i < dim; i++) printf("\ninteiro: "); scanf("%d", &vec[i]); return i; void visuvector(const int vec[], int dim, int ncol) int i, c; for (i = 0; i <= dim - 1; i++) putchar(c = (i % ncol == 0)? '\n' : ' '); printf("%6d", vec[i]);

19 Arrays Ordenação - A função bubble sort 19 Recebe um vector de inteiros e devolve-o ordenado void bublesort(int vec[], int dim) int passo, i, temp; for (passo = 1; passo <= dim - 1; passo++) for (i = 0; i <= dim - 2; i++) if (vec[i] > vec[i + 1]) temp = vec[i]; vec[i] = vec[i + 1]; vec[i + 1] = temp;

20 Arrays Exemplo: pesquisa linear 20 Pesquisa linear (arrays pequenos e não necessariamente ordenados)... Pesquisa binária (arrays grandes e necessariamente ordenados)... O programa cria um array com valores inteiros (vamos supor que são apenas inteiros pares) e responde da seguinte maneira: Indicar o valor inteiro a procurar: 36 Valor encontrado na posicao 18 Função a usar... const Indicar o valor inteiro a procurar: 37 Valor nao encontrado int procuralin( int a[], int valor, int tamanho)

21 #include <stdio.h> #define SIZE 10 int procuralin (int [], int, int); int main(void) int a[size], i, valor, indice; /* criar um array de inteiros */ for (i = 0; i < SIZE; i++) a[i] = 2 * i; printf("valor a procurar: "); scanf("%d", &valor); indice = procuralin(a, valor, SIZE); if (indice == -1) printf("valor nao encontrado\n"); else printf("valor encontrado na posicao de indice %d\n", indice); return 0;

22 int procuralin (int a[], int valorprocurado, int comprimento) int i; for (i = 0; i < comprimento; i++) if (a[i] == valorprocurado) return i; return -1;

23 Arrays Exercício: pesquisa binária 23 Idêntido ao anterior, mas com pesquisa binária int procbin(const int quad[], int valor, int indinf, int indsup) índice Indicar um valor entre 0 e 28: * * * 28 24* 25 nao foi encontrado vector Indicar um valor entre 0 e 28: * * foi encontrado na posicao 3

24 Arrays arrays multidimensionais 24 Array bidimensional: int q [3][4] Coluna Coluna Coluna Coluna Linha 0 q[0][0] q[0][1] q[0][2] q[0][3] Linha 1 q[1][0] q[1][1] q[1][2] q[1][3] Linha 2 q[2][0] q[2][1] q[2][2] q[2][3] array de 3 linha e 4 colunas: array 3 x 4 ou int q [3] [4] array de 3 elementos, sendo cada um deles um array de 4 elementos (inteiros) Exemplo, q[1] corresponde a um array de 4 inteiros

25 Arrays arrays multidimensionais 25 Para percorrer um array (linha a linha, coluna...) soma = 0; for (linha = 0; linha <= 2; linha++) for (coluna = 0; coluna <= 3; coluna++) soma += q[linha][coluna]; Inicialização int a[2][3] = 1, 2, 3,4, 5, 6; a: int b[2][3] = 1, 2, 3, 4, 5; b: int c[2][3] = 1, 2, 4; c:

26 Exercícios Simulação de um helicóptero digital Um helicóptero imaginário é comandado através do teclado. O helicóptero, quando no ar, não deixa rasto. Para deixar rasto deverá estar em contacto com o terreno. Comando Efeito 1 Põe o helicóptero no ar 2 Põe o helicóptero em contacto com o terreno 3 Faz o helicóptero rodar 90 o para a direita 4 Faz o helicóptero rodar 90 o para a esquerda 5 d Desloca o helicóptero (pelo ar ou em contacto com o terreno) d posições para a frente 6 Visualiza o terreno (com os rastos feitos pelo helicóptero) 7 Limpa os rastos do helicóptero no terreno 9 Termina o programa

27 Exercícios Simulação de um helicóptero digital - 2 O terreno é suposto ser um quadrado de dimensão 20 x 20, a que corresponde 20 x 20 células, cada uma identificada pela linha e coluna respectivas. O helicóptero é caracterizado pela sua posicao, dada pela linha e coluna onde se encontra (não necessariamente uma linha e uma coluna do terreno, pois o helicóptero pode deslocar-se para fora dos limites daquele), e é ainda caracterizado pela sua orientacao (um dos pontos cardeais: N, S, E ou O) e situacao (no ar ou no plano do terreno). 27 linha Helicóptero posição: situação: terreno H orientação: N... N linha

28 Exercícios Simulação de um helicóptero digital - 3 O helicóptero é visualizado pela letra H, as células ainda não visistadas por ele são visualizadas com -, enquanto que as já visitadas serão representadas por O. Por exemplo, após o comando 5 com d=2, obtém-se: 28 linha Helicóptero H posição: O situação: terreno O orientação: N... linha Exemplo de uma sessão com o programa helicopterodigital, em que as condições iniciais correspondem a terreno limpo e o helicóptero com posicao: 16 11; situacao: no-terreno; orientacao: N.

29 Exercícios Simulação de um helicóptero digital - 4 Comando: 3 ; roda para a direita 90 o Comando: 5 ; avança Posicoes em frente: 3 ; 3 posições Comando: 4 ; roda para a esquerda 90 o Comando: 5 ;... Posicoes em frente: 2 Comando: 4 Comando: 5 Posicoes em frente: 6 Comando: 6 29 linha HOOOOOO O OOOO linha

30 Exercícios Simulação de um helicóptero digital Definir e implementar, se necessário, uma abstracção de dados compatível com o problema exposto. 2- Fazer uma abordagem de-cima-para-baixo ao programa helicoptero-digital, para identificar as suas tarefas e sub-tarefas principais. 3- Escrever em C o programa helicoptero-digital, tomando por base os resultados da abordagem anterior. Nota: O helicóptero na sua deslocação pode ultrapassar os limites do terreno, situação em que não deixa rasto. O programa continuará a actualizar as suas características, de acordo com os comandos que vai recebendo.

31 Exercícios Bubble sort 31 A ordenação bubble sort já apresentada é extremamente ineficiente para arrays de grandes dimensões. Introduzir os seguintes melhoramentos àquela solução. 1- Depois do 1º passo é garantido que o maior valor está na última posição, que não necessitará de ser visitada no passo seguinte O array a ordenar pode já estar próximo da ordenação pretendida, não sendo necessários todos os passos. Basta detectar quando, num dado passo, não se verifique qualquer alteração de posições...

32 Arrays Ordenação - A função bubble sort 32 Recebe um vector de inteiros e devolve-o ordenado void bublesort(int vec[], int dim) int passo, i, temp; for (passo = 1; passo <= dim - 1; passo++) for (i = 0; i <= dim - 2; i++) if (vec[i] > vec[i + 1]) temp = vec[i]; vec[i] = vec[i + 1]; vec[i + 1] = temp;

33 Exercícios Bucket Sort Um array contém n inteiros positivos para ordenar. Considerar um array auxiliar 10 x n. Cada uma das suas 10 linhas é designada por bucket. Escrever a função bucketsort que toma um array de inteiros e o seu comprimento como argumentos e implementa o seguinte algoritmo: 1- Percorre o array e coloca os seus elementos nas linhas do array 10 x n, de acordo com o seu dígito das unidades. Por exemplo, 97 é colocado na linha 7, 3 é colocado na linha 3, e 100 na linha Percorre o array auxiliar e obtém o array inicial agora ordenado da seguinte maneira: 100, 3, Repete 1- e 2- agora com o dígito das dezenas, depois das centenas,... e termina quando é tratado o dígito mais significativo do maior número.

34 Exercícios Bucket Sort Array a ordenar 10 buckets B0 B1 B2 B3 B4 B5 B6 B7 B8 B <--- termina, pois não há mais dígitos... Se continuasse, cairiam todos em B0.

35 Exercícios Selection sort 35 O algoritmo Selection sort inicia-se procurando o elemento mais pequeno de um array. Esse elemento é trocado com o primeiro elemento do array. O processo continua com o sub-array constituido a partir do segundo elemento do array... O processo termina quando o sub-array tem apenas um elemento. Escrever uma função recursiva para este algoritmo.

36 Exercícios Pesquisas linear e binária Foi apresentado um exemplo relativo à procura linear (para arrays pequenos e com os respectivos elementos não ordenados). Escrever agora uma função recursiva que faz a mesma pesquisa e recebe como argumentos um array de inteiros, um inteiro que é o valor a procurar e um inteiro que é o tamanho daquele array. Se o valor é encontrado, a função devolve a sua posição. Se não for encontrado, devolve -1. Também foi apresentado um exemplo relativo à procura binária (para arrays grandes e com os respectivos elementos ordenados). Escrever a função recursiva que faz a mesma pesquisa e recebe como argumentos um array de inteiros, um inteiro que é o valor a procurar, e dois inteiros que representam, respectivamente, o índice mais baixo e o índice mais alto do array a pesquisar. Se o valor é encontrado, a função devolve a sua posição. Caso não seja encontrado, devolve

37 Exercícios Recursividade 37 Escrever a função recursiva visuarray que toma um array e o seu tamanho como argumentos e não devolve nada. A função visualiza os elementos do array e pára quando recebe um array de tamanho zero. Escrever a função recursiva visucadeiaaocontrario que toma um array de caracteres como argumento e visualiza a cadeia ao contrário, com um espaço entre caracteres. A função pára quando encontra o caracter nulo, '\0'.

38 #include <stdio.h> void visucadeiaaocontrario(char []); int main(void) char cadeia[] = "123abcdfgh"; printf("\ncadeia original: %s\n", cadeia); printf("\ncadeia ao contrario: "); if ('\0'!= cadeia[0]) visucadeiaaocontrario(cadeia); printf("\n"); return 0; void visucadeiaaocontrario(char cadeia[]) if ('\0' == cadeia[1]) printf("%c ", cadeia[0]); else visucadeiaaocontrario(&cadeia[1]); printf("%c ", cadeia[0]);

39 Exercícios Recursividade 39 Escrever a função recursiva minnoarray que toma um array de inteiros e um inteiro que é o seu tamanho como argumentos e devolve o mais pequeno valor no array. A função pára quando recebe um array com um valor. Escrever a função recursiva capicua que toma uma cadeia de caracteres como argumento e devolve 1 se essa cadeia for uma capicua ou zero, se não for capicua.

40 #include <stdio.h> #define TAMANHO 10 int minnoarray(int [], int); int main(void) int i; int array[tamanho] = 9, 8, 7, 6, -5, 4, 0, 2, 1, 78; printf("\nvalores originais:\n"); for (i = 0; i <= TAMANHO - 1; i++) printf("%3d", array[i]); printf("\nvalor minimo: %d\n", minnoarray(array, TAMANHO)); return 0; int minnoarray(int quad[], int tamanho) int valormin; if (1 == tamanho) return quad[0]; else valormin = minnoarray(&quad[1], --tamanho); return quad[0] < valormin? quad[0]: valormin;

41 #include <stdio.h> #include <string.h> int capicua(char []); int capicuaaux(char [], size_t); int main(void) char cadeia[] = "abc d cba"; printf("\ncadeia original: %s\n", cadeia); if (capicua(cadeia)) printf("e uma capicua\n"); else printf("nao e uma capicua\n"); return 0; int capicua(char cadeia[]) return capicuaaux(cadeia, strlen(cadeia)); int capicuaaux(char cadeia[], size_t comp) if (comp == 0 comp == 1) return 1; else return cadeia[0] == cadeia[comp - 1] && capicuaaux(&cadeia[1], comp - 2);

Programação estruturada

Programação estruturada Programação estruturada IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 2 Exercício Desenvolvimento de um programa

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. IPC2 1999/2000 F. Nunes Ferreira

Estruturas de dados. IPC2 1999/2000 F. Nunes Ferreira Estruturas de dados IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 Estruturas de dados Introdução 2 Arrays

Leia mais

Ficheiros. IPC2 1999/2000 F. Nunes Ferreira

Ficheiros. IPC2 1999/2000 F. Nunes Ferreira Ficheiros IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 Ficheiros Introdução 2 Os ficheiros são utilizados

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

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

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

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

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade. 222222222222222222222222222 8 - FUNÇÕES 81 - Características básicas É um trecho independente de código, com objetivos bem definidos Programas em C, geralmente consistem em várias pequenas funções, ao

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

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68 INE5231 Computação Científica I Prof. A. G. Silva 25 de abril de 2017 Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de 2017 1 / 68 Conteúdo programático O computador - [3 horas-aula] Representação

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Programação de Computadores II para SI Gabarito Lista 3 Profa.: Simone Martins 1. Faça uma função recursiva

Leia mais

Programação Imperativa. Lição n.º 16 A pilha de execução

Programação Imperativa. Lição n.º 16 A pilha de execução Programação Imperativa Lição n.º 16 A pilha de execução A pilha de execução Registos de execução. Arrays locais. Caso da alocação dinâmica. Segmento de dados. 11/17/16 Programação Imperativa 2 A pilha

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

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

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

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

CIC 110 Análise e Projeto de Algoritmos I

CIC 110 Análise e Projeto de Algoritmos I CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá sort AULA 02 Ordenação A classificação é um problema de design de algoritmo fundamental.

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 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

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 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

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível? P1 Conceitos (2,4 valores) 1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível? (0.8v) 1.b) Indique três vantagens de criar um programa

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens

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

J. L. Rangel 1. Escreva um programa em C que lê três números inteiros do teclado, e imprime os três números em ordem crescente.

J. L. Rangel 1. Escreva um programa em C que lê três números inteiros do teclado, e imprime os três números em ordem crescente. Estruturas de Dados Lista 1: soluções J. L. Rangel 1. Escreva um programa em C que lê três números inteiros do teclado, e imprime os três números em ordem crescente. #include int leint(void)

Leia mais

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

Caracteres e. cadeia de caracteres. IPC2 1999/2000 F. Nunes Ferreira

Caracteres e. cadeia de caracteres. IPC2 1999/2000 F. Nunes Ferreira Caracteres e cadeia de caracteres IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 Caracteres e cadeia de caracteres

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

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

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

Vetores, Strings e Matrizes

Vetores, Strings e Matrizes Vetores, Strings e Matrizes Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Vetores Um vetor é um tipo de dados agregado homogêneo, cujos

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

Estruturas Dinâmicas - Ponteiros

Estruturas Dinâmicas - Ponteiros SSC0800 - ICC1 Teórica Introdução à Ciência da Computação I Estruturas Dinâmicas - Ponteiros Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br Sumário Ponteiros Ponteiros e Vetores Funções para alocaçã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

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

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros - Parte I Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros Um ponteiro é uma variável que contém um endereço de memória. Esse endereço é normalmente

Leia mais

Programação de Computadores II. Cap. 4 Funções

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

Leia mais

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

Recuperação P1 de Estrutura de Dados

Recuperação P1 de Estrutura de Dados Recuperação P1 de Estrutura de Dados Sigla _IED001_ TURMA: A PERÍODO: MAT ( ) NOT ( ) DISCIPLINA:_Estrutura de Dados DATA: / / Argumente com fundamentando as questões da avaliação indicando porque a questão

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

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,

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

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Ponteiros e funções Cristina Boeres 2 Ponteiros Variável do tipo ponteiro:! Linguagens como C permite o armazenamento e a manipulação de valores de endereços de memória!

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

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

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Programação Imperativa. Lição n.º 17 Cadeias de carateres

Programação Imperativa. Lição n.º 17 Cadeias de carateres Programação Imperativa Lição n.º 17 Cadeias de carateres Cadeias de carateres Conceitos básicos. Técnicas elementares. Arrays de cadeias de carateres. 11/20/16 Programação Imperativa 2 Cadeias de carateres

Leia mais

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 07 de abril de 2008

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 07 de abril de 2008 MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 07 de abril de 2008 Nome: Assinatura: N ō USP: Turma: Instruções: Professor: 1. Não destaque as folhas deste caderno. 2.

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

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Funções Escopo de Variáveis Variáveis Globais

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

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Ponteiros Copyright 2014 IFRN Agenda Memória Ponteiros Aritmética de ponteiros Arrays/strings Parâmetros de função

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Leia mais

INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados

INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 2 o Teste A - 2 de Julho de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Linguagem C vetores multidimensionais

Linguagem C vetores multidimensionais Linguagem C vetores multidimensionais IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Operadores aritméticos, de comparação

Leia mais

Introdução a Programação de Jogos

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

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

Caracteres e Cadeias de Caracteres

Caracteres e Cadeias de Caracteres Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor

Leia mais

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

Conceitos básicos. Computação eletrônica: Gurvan Huiban Computação eletrônica: Conceitos básicos Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Estrutura de um programa em C 2 Variáveis e constantes 3 Comandos de entrada e saída Estrutura de um programa

Leia mais

Linguagem C Variáveis Indexadas ( vetores e Matrizes) Lógica de Programação

Linguagem C Variáveis Indexadas ( vetores e Matrizes) Lógica de Programação Linguagem C Variáveis Indexadas ( vetores e Matrizes) Lógica de Programação Caro(a) aluno(a), Começaremos agora a montar vetores e matrizes na linguagem de programação. Bom trabalho!!! Variáveis Indexadas

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

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015 Programação em C 15/01/2015 Resolução 1. Descreva, em Português, cada uma das seguintes declarações em C: 1.1. char str[512]; Array

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 7 Tipos de inteiros em C Os inteiros em C podem ser com sinal ou sem sinal:e cada um pode ter vários tamanhos: int i; unsigned int

Leia mais

Apontadores. Pointers. IPC2 1999/2000 F. Nunes Ferreira

Apontadores. Pointers. IPC2 1999/2000 F. Nunes Ferreira Apontadores Pointers IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 2 Apontadores/Pointers Apontadores/Pointers

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

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

Algoritmia e Programação

Algoritmia e Programação Algoritmia e Programação Conteúdo Pesquisa em Vectores Apresentação e discussão de vários algoritmos de pesquisa. Pesquisa linear ou sequencial Pesquisa binária Ordenação de Vectores Exemplos de aplicação

Leia mais

#include <stdio.h> #define nl 3 #define nc 4 main () { int matriz[nl][nc],*p,i; for (i=0, p=&matriz[0][0];i<nl*nc;i++) *(p++)=i+1; for (i=0,

#include <stdio.h> #define nl 3 #define nc 4 main () { int matriz[nl][nc],*p,i; for (i=0, p=&matriz[0][0];i<nl*nc;i++) *(p++)=i+1; for (i=0, 369 #include #define nl 3 #define nc 4 main () { int matriz[nl][nc],*p,i; for (i=0, p=&matriz[0][0];i

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

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento Parte 1: Vetores Gabarito - Lista de Exercícios 5 Vetores e Matrizes 1) O que será impresso

Leia mais

Capacitação em Linguagem C Parte 2

Capacitação em Linguagem C Parte 2 Capacitação em Linguagem C Parte 2 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 22 de outubro de 2015 Sumário I Tipos abstratos

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Aula 04. Agregados Homogêneos. Agregados Heterogêneos. Matrizes

Aula 04. Agregados Homogêneos. Agregados Heterogêneos. Matrizes Logo Aula 04 Agregados Homogêneos Matrizes Agregados Heterogêneos 2 Matriz Da mesma forma que as variáveis indexadas vetoriais, vistas anteriormente, as variáveis indexadas bidimensionais são utilizadas

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

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

CCO 016 Fundamentos de Programação

CCO 016 Fundamentos de Programação CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 10 Agregados Homogêneos Variáveis Indexadas Cadeia de Caracteres String Cadeia ou string O

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

Apontadores/ponteiros

Apontadores/ponteiros Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf

Leia mais

Módulo 16 - Ordenação

Módulo 16 - Ordenação Estruturas de Dados Módulo 16 - Ordenação 15/05/2013 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço.

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Logo Aula 06 Ponteiros 2 Ponteiros Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Um exemplo clássico disto

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

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO

Leia mais

Aula 06 Introdução à Programação Matrizes

Aula 06 Introdução à Programação Matrizes Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE

Leia mais

Entrada: M ind

Entrada: M ind Ordenação O objetivo deste capítulo é o de estudar algoritmos de ordenação (ou classificação) de uma sequência de números, em ordem crescente, ou decrescente. De um modo geral tal sequência pode ser uma

Leia mais

Entrada de Dados na Linguagem C. Professor Adolfo Neto DAINF UTFPR Agosto de 2008

Entrada de Dados na Linguagem C. Professor Adolfo Neto DAINF UTFPR Agosto de 2008 Entrada de Dados na Linguagem C Professor Adolfo Neto DAINF UTFPR Agosto de 2008 Objetivos Ao final desta aula o aluno será capaz de escrever programas em C utilizando a função SCANF para entrada de dados.

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

1ª Lista de Exercícios

1ª Lista de Exercícios Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule

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

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos

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

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

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

Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI. Prof. Paulo Henrique Pisani

Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI. Prof. Paulo Henrique Pisani Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI Prof. Paulo Henrique Pisani fevereiro/2019 Algoritmos e Estruturas de Dados I Ementa: Breve introdução à linguagem C; Noções básicas de análise

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Recursão em C

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

Leia mais

Linguagem C (repetição)

Linguagem C (repetição) Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,

Leia mais

Linguagem C: Elementos fundamentais

Linguagem C: Elementos fundamentais Instituto de C Linguagem C: Elementos fundamentais Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Variáveis e Constantes Operadores

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 10 Ordenação 2 15-1 7 9 4 6 Existem muitos métodos de ordenar Bolha Inserção Seleção Quicksort etc... Bolha (bubble sort) Percorrer

Leia mais