Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média...

26
Aula de revisão Prof. Luis Otavio Alvares

Transcript of Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média...

Page 1: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Aula de revisão

Prof. Luis Otavio Alvares

Page 2: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais ou superiores à média.

Pergunta-se:

Quantas variáveis serão necessárias para ler os valores?

9?Ou 1?

Resposta: 9 variáveis (de mesmo tipo!)

Page 3: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

abc

0 1 2 3 4 5 6 7 8

(...)

Solução para o problema das múltiplas variáveis de mesmo tipo:

um vetor

Nome: comum a todas as variáveis

A posição dentro do vetor (índice) identifica os valores individuais

Ex.: abc[0] … abc[8]

Page 4: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Vetores: variáveis

compostashomogêneas

• Um só tipo;• Um só nome;• Múltiplas posições de memória

identificadas por índices.

Page 5: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

valor[i]

0 1 2 3 4 5 6 7 8i =

(...)

Seja um vetor inteiro de 9 elementos chamado valor

Page 6: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Declaração de um vetor ( = arranjo de uma só dimensão)

Exemplo:

int valor[9];//valor corresponderá a 9 variáveis, com // índices variando de 0 a 8

valor[i]

0 1 2 3 4 5 6 7 8i =

(...)

Page 7: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

ATENÇÃO

• A primeira posição de um vetor é a posição zero.Ex.: maior = vet[0]; // inicializacao de variável maior

//com o primeiro valor do vetor vet

Vetores não são inicializados automaticamente pelo sistema. Inicialmente contém valores quaisquer (= “lixo”).

O sistema não controla a correção dos índices usados. Quem deve garantir que os índices estejam dentro do intervalo correto é o programador.

Page 8: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Por leitura:

for (i = 0; i <MAX;i++) scanf(“%d”, &valor[i]);

Algumas formas de inicialização de um vetor:

Por atribuição, para garantir valor inicial zero a posições que funcionarão como contadores ou acumuladores:

for (i = 0; i <MAX;i++)

cont_valores[i]= 0;

Page 9: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

O que pode ser usado como índice de um vetor?

Tanto variáveis inteiras quanto constantes numéricas. Ex.: printf(“Escore do aluno %d: “, escore[i]);

printf(“Escore do primeiro aluno %d: “, escore[0]);

Variáveis diferentes podem ser usadas para acessar um vetor em momentos diferentes de um programa:

Ex.: scanf(“%d”,&valor[i]);...printf(“Valor: %d ”, valor[j]);

Uma mesma variável pode ser usada no mesmo momento ou em momentos diferentes para acessar vetores diferentes. Ex.:

printf(“\n%d %d”, gabarito[i] , resultado[i]);

Page 10: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Ainda sobre índices de vetores:

Não existe vinculação permanente entre um valor ou variável e um vetor.

Qualquer índice (variável ou constante) usado para acessar um vetor deve corresponder a um valor dentro do intervalo de índices válidos para o vetor.

Page 11: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

11

Um arranjo multidimensional é o arranjo

que necessita de mais de um índice para

referenciar seus elementos.

Ex.: arranjo bidimensional ou matriz de

duas dimensões.

Arranjo multidimensional

(ou matriz, tabela)

Page 12: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

12

#define MAXLIN 7#define MAXCOL 6…float notas [MAXLIN] [MAXCOL];

Acesso a um elemento de Notas:

Declaração de notas como matriz bidimensional:

printf(“%6.2f” , notas[1] [2]);

linha coluna

…float notas [7] [6];

Outra forma:

Page 13: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

13

Arranjos bidimensionais em C

• Primeiro índice : linha;

• Segundo índice : coluna.

Page 14: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

14

Primeira nota do primeiro aluno:

printf(“Nota 1 do Primeiro Aluno: %6.2f“, notas[0] [0]);

Acesso a elementos determinados da matriz:

Primeira nota do terceiro aluno , ou seja, i = 2 j = 0:

scanf(“%f”, &notas[i] [j]);

Última nota do último aluno: if (notas[6] [5] > 9.5) ...

Considerando uma matriz definida como notas[7][6] com as notas de alunos, em que cada linha corresponde a um aluno e cada coluna a uma prova:

Page 15: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

15

ATENÇÃO:

Seja qual for o número de dimensões*os elementos de um arranjo são sempre de mesmo tipo!

* (número de índices necessários para acessar um elemento da matriz = número de dimensões da matriz)

Page 16: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

16

Strings• Não existe um tipo String em C.

• Strings em C são vetores do tipo char que terminam com ‘\0’.

• Para literais string, o próprio compilador coloca ‘\0’.

#include <stdio.h>#include <stdlib.h>main(){ char re[8] = "lagarto"; //tamanho máximo de 7 caracteres

printf ("%s", re); system("pause");}

Page 17: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

17

Para ler uma String

• Comando gets

#include <stdio.h>#include <stdlib.h>main(){ char re [80]; printf ("Digite o seu nome: "); gets(re); printf ("Oi %s\n", re); system("pause");}

Page 18: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Tratamento de strings

• #include <string.h>

• Principais funções para manipulação de strings:– strcmp (s1, s2): comparação de strings (0 p/ iguais)– strlen(s1): devolve o tamanho da string – strcpy(para, de): copia string– strcat(str1,str2): concatena duas strings– strupr(str): coloca str em letras maiúsculas– strlwr(str): coloca str em letras minúsculas

18

Page 19: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Tratamento de strings

• Como os strings são armazenados como um vetor de caracteres, eles podem ser manipulados como um vetor normal, acessando cada caracatere pelo respectivo índice

Page 20: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Funções são segmentos de programa que executam uma determinada tarefa específica.

Funções (também chamadas de rotinas, ou sub-programas) são a essência da programação estruturada.

Ex: sqrt(), strlen(), etc.

O programador também pode escrever suas próprias funções, chamadas de funções de usuário, que tem uma estrutura muito semelhante a um programa.

Funções

Page 21: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

tipo_da_funcao nome_da_função (lista_de_parâmetros) { //declarações locais

//comandos }

•tipo_da_funcao: o tipo de valor retornado pela função. Se não especificado, por falta a função é considerada como retornando um inteiro.

•nome_da_função: nome da função conforme as regras do C

•lista_de_parâmetros: tipo de cada parâmetro seguido de seu identificador, com vírgulas entre cada parâmetro. Mesmo se nenhum parâmetro for utilizado, os parênteses são obrigatórios.Os parâmetros da declaração da função são chamados de parâmetros formais.

Forma geral da declaração de uma função

Page 22: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Ex.: soma_valores (int valor1, int valor2) // por falta é inteiravoid imprime_linhas(int num_lin)void apresenta_menu ( )float conv_dolar_para_reais(float dolar);

Exemplos de cabeçalhos de funções

Page 23: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Ao ser executado o return numa função, um valor é atribuído à função e ela encerra sua execução.

No ponto onde ocorreu a chamada da função, um valor passa a estar disponível para processamento.

Comando return():retorno de valor e fim lógico da função

Page 24: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Se uma função é declarada com tipo diferente de void (int, char, float, etc.) significa que ela pretende explorar a possibilidade de retorno de um valor em seu nome, e então pode ser usada em expressões.

Uma função que retorna um valor em seu nome deve conter pelo menos uma ocorrência do comando return, uma vez que é pela execução de um comando return que um valor é atribuído ao nome de uma função.

Comando return():retorno de valor da função (cont.)

Page 25: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

Quando uma função encerra sua execução?

Uma função encerra sua execução quando:

•o fim do seu código é atingido;

ou

•um comando return é encontrado e executado.

Page 26: Aula de revisão Prof. Luis Otavio Alvares Seja o problema: Ler 9 valores, calcular a média aritmética dos mesmos e imprimir a média e os valores iguais.

A declaração da função.

A chamada da função.

Dependendo do caso, o protótipo da função.

O quê é necessário para usar-se uma função em Linguagem C?