Introdução à Computação para Engenharia MAC2166

Documentos relacionados
Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

MAC 2166 Introdução à Computação para Engenharia

Algoritmos e Programação

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

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

ESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza

Aula 15 Variáveis Indexadas (vetores)

ESTRUTURAS COMPOSTAS

ESTRUTURAS COMPOSTAS VETOR

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

Computação I (MAB120) DCC/UFRJ

Introdução à Programação

3. Linguagem de Programação C

O comando for permite que um certo trecho de programa seja executado um determinado número de vezes. A forma do comando for é a seguinte:

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

ESTRUTURAS DE CONTROLE

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

Vetores são estruturas indexadas utilizadas para armazenar dados de um mesmo tipo: int, char, float ou double. Oexemploaseguirédeumvetordeinteiros:

MC-102 Aula 07 Comandos Repetitivos

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

MC-102 Aula 06 Comandos Repetitivos

Aula 15: Repetição (Parte 3)

Estruturas Compostas Matriz

Programação: Vetores

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Aula 8 Vetores Cleverton Hentz

VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES

MC-102 Aula 10 Vetores

ESTRUTURA DE DADOS LISTAS LINEARES

Introdução a Programação de Jogos

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

LINGUAGEM C: ARRAY: VETORES E MATRIZES

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

ESTRUTURAS COMPOSTAS VETOR

Computação El E etrônic i a If-Else

Linguagem C (repetição)

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

Introdução à Programação

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27

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

Algoritmos II Aula 2 Vetores

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

INF 1007 Programação II

Definição de Matrizes em Linguagem C. Matrizes unidimensionais

Estruturas de Repetição

VETORES Motivação AULA 19

Atividade de laboratório listas encadeadas simples

Aula 16: Laços aninhados e desvios

Computação eletrônica: Estruturas de repetição

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

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

Arranjos de arranjos, matrizes.

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos...

PCI- Estrutura de Repetição II. Profa. Mercedes Gonzales Márquez

Aula 14: Estruturas de Seleção e Controle em C

Alocação dinâmica de Memória

Algoritmos e Programação

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Introdução à Computação - aulas 01 e 02 -

Introdução à Programação

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

Linguagem C: Algoritmos de Ordenação

Variáveis Compostas. Vanessa Braganholo

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

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

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

Programação científica C++

Linguagem C. Funções. Prof. Maurício Dias

Estruturas Homogêneas (Vetores)

Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

Exercícios - Questões Objetivas

È um tipo estruturado homogêneo

1) Operadores de auto incremento ++ e auto decremento --

Roteiro para Laboratório - GRAFOS

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos

Linguagem C (Funções)

Capítulo 4: Condicionais

Aula 3 PROFESSOR TUTA

Aula 05: Condicionais (if / else)

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

Subprogramas. Prof. Carlos Lopes

Aula 10: Introdução a Vetores e Matrizes

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

MC-102 Aula 08 Comandos Repetitivos

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

Introdução a Programação de Jogos

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 à Computação

Exercícios de Laboratório de ICC Engenharia Ambiental 2º Semestre de 2004

1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

Transcrição:

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Vetores

Motivação: O programa abaixo calcula a média de N notas. float nota,media,soma=0.0; int i,n; printf("entre com a quantidade: "); scanf("%d",&n); for(i=1; i<=n; i++){ scanf("%f",&nota); soma += nota; /* soma = soma + nota; */ media = soma/n; printf("media: %.2f\n",media);

Motivação: E para calcular o desvio padrão? Para usar a equação acima precisamos primeiro calcular a média e depois percorrer novamente cada nota a fim de calcular o somatório acima. Como fazer? Pedir para o usuário digitar novamente os dados. Extremamente deselegante. Armazenar cada nota em uma variável. Complicado de se programar.

Motivação: E para calcular o desvio padrão? Armazenar cada nota em uma variável (inviável). float nota,media,soma=0.0; float nota1,nota2,nota3,... int i,n; scanf("%d",&n); for(i=1; i<=n; i++){ scanf("%f",&nota); soma += nota; if(i==1) nota1 = nota; else if(i==2) nota2 = nota; else if(i==3) nota3 = nota;... media = soma/n;...

Motivação: Uma solução alternativa no caso do desvio padrão, é considerarmos o desenvolvimento abaixo: Agora podemos calcular os dois somatórios da expressão resultante acima simultaneamente, percorrendo os dados uma única vez. Porém veremos problemas onde a necessidade de relembrar os dados que foram digitados, não pode ser evitada.

Definição: Vetor é uma série de variáveis do mesmo tipo referenciadas por um único nome, onde cada variável (elemento) é diferenciada através de um número chamado índice. Os elementos do vetor são guardados em posições consecutivas de memória (alocação sequencial). int main(){ float notas[5]; Representação gráfica: notas[0] = 2.5; notas[1] = 4.5; notas[2] = 9.0; notas[3] = 7.0; notas[4] = 5.5; 2.5 4.5 9.0 7.0 5.5 0 1 2 3 4

Definição: Vetores Declaração: Vetor é uma série tipo de variáveis identificador[tamanho]; do mesmo tipo referenciadas por um único nome, onde cada variável (elemento) é diferenciada através de um número O tamanho chamado deve índice. ser uma constante inteira! Os elementos do vetor int N; são guardados em posições consecutivas de memória scanf("%d", (alocação &N); seqüencial). float notas[n]; /* Errado. */ int main(){ float notas[5]; Representação gráfica: notas[0] = 2.5; notas[1] = 4.5; notas[2] = 9.0; notas[3] = 7.0; notas[4] = 5.5; 2.5 4.5 9.0 7.0 5.5 0 1 2 3 4

Definição: Vetor é uma série de variáveis do mesmo tipo referenciadas por um único nome, onde cada Referenciando variável (elemento) um é elemento: diferenciada através de um número chamado índice. Os elementos do vetor identificador[índice] são guardados em posições consecutivas de memória Índices (alocação válidos seqüencial). entre 0 e tamanho-1. Cuidado: C não realiza verificação de int main(){ limites. Acessos errados acarretam float notas[5]; resultados Representação imprevisíveis. gráfica: notas[0] = 2.5; notas[1] = 4.5; notas[2] = 9.0; notas[3] = 7.0; notas[4] = 5.5; 2.5 4.5 9.0 7.0 5.5 0 1 2 3 4

Problema: Calcular o desvio padrão das notas digitadas. #define LIM 500 int main(){ float media,desvio,soma=0.0,notas[lim]; int i,n; scanf("%d",&n); { scanf("%f",&notas[i]); soma += notas[i]; media = soma/n; soma = 0.0; soma += (notas[i]-media)*(notas[i]-media); desvio = sqrtf(soma/n); printf("desvio: %.2f\n",desvio);

Problema: Calcular o desvio padrão das notas digitadas. #define LIM 500 int main(){ float media,desvio,soma=0.0,notas[lim]; int i,n; scanf("%d",&n); { scanf("%f",&notas[i]); soma += notas[i]; media = soma/n; soma = 0.0; Índice pode ser especificado por uma expressão inteira ou pelo conteúdo de uma variável inteira. soma += (notas[i]-media)*(notas[i]-media); desvio = sqrtf(soma/n); printf("desvio: %.2f\n",desvio);

Problema: Calcular o desvio padrão das notas digitadas. #define LIM 500 int main(){ float media,desvio,soma=0.0,notas[lim]; int i,n; scanf("%d",&n); { scanf("%f",&notas[i]); if(n>lim){ printf("tamanho excedido\n"); /* Encerra o programa. */ soma += notas[i]; media = soma/n; soma = 0.0; soma += (notas[i]-media)*(notas[i]-media); desvio = sqrtf(soma/n); printf("desvio: %.2f\n",desvio);

Operações com vetores: Reflexão Problema: inverter a ordem dos elementos do vetor. #define LIM 500 int main(){ float notas[lim],tmp[lim]; int i,n; scanf("%d",&n); scanf("%f",&notas[i]); tmp[n-1-i] = notas[i]; notas[i] = tmp[i]; printf("%.2f ",notas[i]); printf("\n");

Invertendo elementos Troca usando variável auxiliar: float a,b,tmp;... tmp = a; a = b; b = tmp;... Troca sem uso de variável auxiliar: float a,b;... a = a + b; b = a - b; a = a - b;...

Operações com vetores: Reflexão Problema: inverter a ordem dos elementos do vetor. #define LIM 500 int main(){ float notas[lim],tmp; int i,n; scanf("%d",&n); scanf("%f",&notas[i]); for(i=0; i<n/2; i++){ tmp = notas[i]; notas[i] = notas[n-1-i]; notas[n-1-i] = tmp; printf("%.2f ",notas[i]); printf("\n");

Exercício: 1) Dados n > 0 números inteiros, imprimi-los na ordem inversa a da leitura. 2) Faça um programa que lê dois vetores ordenados (ordem crescente), com m > 0 e n > 0 elementos respectivamente, e gera um terceiro vetor ordenado contendo todos os elementos das duas sequências originais sem repetição. 3) Dados n > 0 lançamentos de uma roleta (números entre 0 e 36), calcular a frequência de cada número. 4) Dada uma sequência de n > 0 números reais, imprimi-los eliminando as repetições.