Title: Aula de revis
1Aula de revisão
- Prof. Luis Otavio Alvares
2Seja 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!)
3Solução para o problema das múltiplas variáveis
de mesmo tipo um vetor
abc
Nome comum a todas as variáveis
(...)
0
1
2
3
4
5
6
7
8
A posição dentro do vetor (índice) identifica os
valores individuais
Ex. abc0 abc8
4Vetores variáveis compostashomogêneas
- Um só tipo
- Um só nome
- Múltiplas posições de memória identificadas por
índices.
5Seja um vetor inteiro de 9 elementos chamado valor
valori
(...)
i
0
1
2
3
4
5
6
7
8
6Declaração de um vetor ( arranjo de uma só
dimensão)
- Exemplo
- int valor9
- //valor corresponderá a 9 variáveis, com
- // índices variando de 0 a 8
valori
(...)
0
1
2
3
4
5
6
7
8
i
7ATENÇÃO
- A primeira posição de um vetor é a posição zero.
- Ex. maior vet0 // inicializacao de variável
maior //com o primeiro valor do
vetor vet
- O sistema não controla a correção dos índices
usados. - Quem deve garantir que os índices estejam dentro
do intervalo correto é o programador.
- Vetores não são inicializados automaticamente
pelo sistema. Inicialmente contém valores
quaisquer ( lixo).
8Algumas formas de inicialização de um vetor
Por leitura for (i 0 i ltMAXi)
scanf(d, valori)
Por atribuição, para garantir valor inicial zero
a posições que funcionarão como contadores ou
acumuladores for (i 0 i ltMAXi)
cont_valoresi 0
9O que pode ser usado como índice de um vetor?
- Tanto variáveis inteiras quanto constantes
numéricas. - Ex.
- printf(Escore do aluno d ,
escorei) - printf(Escore do primeiro aluno d ,
escore0) -
Variáveis diferentes podem ser usadas para
acessar um vetor em momentos diferentes de um
programa Ex. scanf(d,valori) ... pri
ntf(Valor d , valorj)
Uma mesma variável pode ser usada no mesmo
momento ou em momentos diferentes para acessar
vetores diferentes. Ex. printf(\nd
d, gabaritoi , resultadoi)
10Ainda 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.
11Arranjo multidimensional (ou matriz, tabela)
- 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.
12 Declaração de notas como matriz bidimensional
float notas 7 6
Outra forma
define MAXLIN 7 define MAXCOL 6 float
notas MAXLIN MAXCOL
Acesso a um elemento de Notas
printf(6.2f , notas1 2)
coluna
linha
13Arranjos bidimensionais em C
- Primeiro índice linha
- Segundo índice coluna.
14Acesso a elementos determinados da matriz
Considerando uma matriz definida como notas76
com as notas de alunos, em que cada linha
corresponde a um aluno e cada coluna a uma prova
Primeira nota do primeiro aluno
printf(Nota 1 do Primeiro Aluno 6.2f,
notas0 0)
Primeira nota do terceiro aluno , ou seja, i 2
j 0 scanf(f, notasi j)
Última nota do último aluno if
(notas6 5 gt 9.5) ...
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)
16Strings
- 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 ltstdio.hgt
- include ltstdlib.hgt
- main()
- char re8 "lagarto" //tamanho máximo de 7
caracteres - printf ("s", re)
- system("pause")
17Para ler uma String
- Comando gets
- include ltstdio.hgt
- include ltstdlib.hgt
- main()
- char re 80
- printf ("Digite o seu nome ")
- gets(re)
- printf ("Oi s\n", re)
- system("pause")
18Tratamento de strings
- include ltstring.hgt
- 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
19Tratamento 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
20Funções
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.
21Forma geral da declaração de uma função
- 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.
22Exemplos de cabeçalhos de funções
Ex. soma_valores (int valor1, int valor2) //
por falta é inteira void imprime_linhas(int
num_lin) void apresenta_menu ( ) float
conv_dolar_para_reais(float dolar)
23Comando return() retorno de valor e fim lógico
da função
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.
24Comando return() retorno de valor da função
(cont.)
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.
25Quando 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.
26O quê é necessário para usar-se uma função em
Linguagem C?
A declaração da função. A chamada da
função. Dependendo do caso, o protótipo da
função.