Computação I (MAB120) DCC/UFRJ



Documentos relacionados
Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Linguagem C ponteiros

Vetores. Marina Andretta. 11 de abril de 2016 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 11 de abril de / 20

Introdução à Programação

Computação I (MAB120) DCC/UFRJ

Programação: Vetores

INF 1007 Programação II

Programação de Computadores II. Cap. 5 Vetores

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Introdução a Computação

LINGUAGEM C Estrutura / Funções

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

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

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

Programação Estruturada

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

ponteiros INF Programação I Prof. Roberto Azevedo

Introdução à Programação

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

INF 1005 Programação I - Prof. Hélio Lopes 24/04/2012

Algoritmos e Programação

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

Vetores e Matrizes. Conceito. Conceito. Conceito. Conceito. Conceito. Variáveis Compostas Homogêneas. Matriz

12 - Dados Estruturados Vetores, Matrizes e Strings

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 5: Array. (complemento de dois) Aura - Erick

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

Computação Informática

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função

CCO 016 Fundamentos de Programação

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

ESTRUTURAS COMPOSTAS

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Revisão para Prova 2. Mirella M. Moro

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

Introdução a Programação. Tipos Estruturados de Dados

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Capacitação em Linguagem C Parte 2

INF 1620 P3-02/07/02 Questão 1 Nome:

Programação de Computadores II Lista de Exercícios 01

Métodos Computacionais. Tipos Estruturados

13 Registros (Structs)

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

INF 1620 P3-25/11/05 Questão 1 Nome:

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

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

3. Linguagem de Programação C

Computação Eletrônica. Struct (Estruturas)

INF 1007 Programação II

Aula 24 Ponteiros, vetores e structs

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

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

Linguagem de Programação C. Expressões em C

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

Algoritmos e Programação

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

Introdução a Programação de Jogos

Matrizes. Marina Andretta. 17 de abril de 2017 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 17 de abril de / 30

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.

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

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas

Aula 07 Introdução à Programação Subprogramas

ESTRUTURAS COMPOSTAS VETOR

Computação eletrônica: Funções

controle de fluxo repetições iterativas

Arquivos. Programação de Computadores I. Natália Batista.

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Apontadores/ponteiros

Aula 15 Variáveis Indexadas (vetores)

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

Aula 10 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

INF1005: Programação 1. Vetores. 02/05/10 (c) Paula Rodrigues 1

ESTRUTURAS COMPOSTAS VETOR

INF 1620 P1-13/09/02 Questão 1 Nome:

Prova 2 - Computação

Fundamentos de Programação

Laboratório de 13 de maio de 2019

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

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Aula 05 -Introdução àlinguagc Programação: Estr. Dados Strings

INF 1620 P1-16/09/06 Questão 1 Nome:

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

Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Estrutura de Dados. Struct (Registro) Lais Farias Alves

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Aula 9 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

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

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

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

Introdução à Computação MAC0110

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

3. Linguagem de Programação C

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

LISTA DE EXERCÍCIOS MÊS 04

Disciplina de Algoritmos e Programação

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

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

Transcrição:

Computação I (MAB120) DCC/UFRJ Aula 12: vetores 13 de maio de 2016

Objetivos dessa aula Apresentar o conceito de Tipos Compostos Homogêneos Apresentar o conceito de vetores Apresentar as operações básicas sobre vetores e demonstrar o seu uso

Tipos compostos homogêneos tipos de dados que armazenam vários dados semelhantes, isto é, de um mesmo tipo

Vetor um tipo composto homogêneo que usa um mecanismo de indexação para acessar os seus elementos Simplifica a implementação de programas que precisam lidar com uma grande quantidade de dados semelhantes (por exemplo, os milhares de alunos em uma escola) Sem vetores, seria necessário criar uma variável distinta para cada um desses alunos Com o uso de vetores, conjuntos de objetos semelhantes podem ser tratados de forma mais simples

Exemplo sem uso de vetor: duas leituras dos dados #define QTD_NOTAS 50 int main (){ int i, conta; float nota, soma=0.0, media; for(i=0; i < QTD_NOTAS; i++) { scanf ("%f", &nota); soma = soma + nota; media = soma / QTD_NOTAS; conta = 0; for(i=0; i < QTD_NOTAS; i++) { scanf ("%f", &nota); if(nota > media) conta++; printf("%d alunos com nota acima da media", conta); return 0;

Finalidade de vetores o uso de vetores é necessário quando um conjunto de dados de um mesmo tipo deve ser armazenado para utilização durante a execução do programa se vetores fossem empregados no exemplo anterior, as notas de todos os alunos poderiam ter sido armazenadas num único vetor durante a primeira leitura dos dados, e ficariam disponíveis para uso durante toda a execução

Definição de vetor em C na linguagem C, um vetor é definido da seguinte maneira: <tipo> <nome do vetor> [número de elementos do vetor]; exemplos int a [5]; char nome [20]; long long int matriculas [1000]; float notasalunos [50];

Representação de vetor na memória os elementos de um vetor são armazenados em uma sequência contínua de memória exemplo int a [5]; // a tem 5 elementos do tipo int

Representação de vetor na memória exemplo char nome [20]; // nome tem 20 elementos do tipo char O primeiro elemento de um vetor em C tem índice ZERO!

Exemplo com uso de vetor: uma leitura dos dados #define QTD_NOTAS 50 int main (){ int i, conta; float notas[qtd_notas], soma=0.0, media; for(i=0; i < QTD_NOTAS; i++) { scanf ("%f", &notas[i]); soma = soma + notas[i]; media = soma / QTD_NOTAS; conta = 0; for(i=0; i < QTD_NOTAS; i++) { if(notas[i] > media) conta++; printf("%d alunos com nota acima da media", conta); return 0;

Exercício: o que o programa abaixo faz? #define TAMANHO 20 int main(void) { int vet[tamanho]; int i; for(i=0; i<tamanho; i++) { scanf("%d", &vet[i]); i=tamanho-1; while(i>=0) { printf("%d ", vet[i]); i--; return 0;

Exercício: o que o programa abaixo faz? #define TAMANHO 5 int main(void) { float vet[tamanho] = {-34, 2, -8.9, 0, 9; short int i; float maior, menor; maior = menor = vet[0]; for(i=1; i<tamanho; i++) { if(vet[i] > maior) maior = vet[i]; else if(vet[i] < menor) menor = vet[i]; printf("\nmaior=%.1f menor=%.1f\n", maior, menor); return 0;

O que está errado no código abaixo? int main (){ int num; float notas [num]; printf ("Quantas notas deseja armazenar?"); scanf ("%d", &num); for(i=0; i<num; i++ { scanf("%f", &notas[i]); return 0;

dentro de estruturas É possível definir vetores dentro de estruturas, exemplo: typedef struct { int matricula; int idade; float notas[3]; taluno;

Exemplo de uso do tipo taluno int main (void) { taluno a; taluno b = {54321, 23, {2.3, 4.5, 5.6; float media; a.matricula = 12345; a.idade = 18; a.notas[0] = 2.5; a.notas[1] = 6.8; a.notas[2] = 8.9; media = (a.notas[0] + a.notas[1] + a.notas[2]) / 3; printf("a:%d %d %f\n", a.matricula, a.idade, media); media = (b.notas[0] + b.notas[1] + b.notas[2]) / 3; printf("b:%d %d %f\n", b.matricula, b.idade, media); return 0;

como parâmetros de funções podem ser usados como parâmetros de funções em C...mas não podem ser usados como valores de retorno de funções (ao contrário de estruturas, que podem ser valores de retorno de funções)

Exemplo float calculomedia (float vet[], int tam) { int i; float soma, media; soma = 0.0; for (i=0; i<tam; i++) { soma = soma + vet[i]; media = soma / tam; return media;

..continuação exemplo int main () { int i; float media, notas[5]; for (i=0; i < 5; i++) { printf ("Digite uma nota:"); scanf ("%f", &notas[i]); media = calculomedia (notas, 5); printf ("media = %f \n", media); return 0;

Exercício Uma operação muito comum em computação é a intercalação de dois vetores que já estão ordenados. Considere um vetor A de tamanho N e outro B de tamanho M. O vetor resultante C é construído a partir dos dois originais e terá tamanho N + M. Escreva uma função em C que receba dois vetores de inteiros ordenados (ordem crescente) como entrada e seus respectivos tamanhos, e imprima na tela o vetor resultante da intercalação desses dois vetores.

Alteração da data da Prova 1 Nova data: 3 de junho de 2016 (sexta-feira)

Referências bibliográficas 1 Introdução à programação: uma nova abordagem usando C, Flávio Varejão, Campus/Elsevier, 2015. 2 Curso de Linguagem C, apostila do prof. Adriano Cruz (DCC/UFRJ), 2013