Você está na página 1de 28

Algoritmos e Lógica

de Programação
Aula Prática 7

Profa Ms. Adriane Ap. Loper


Programação de
funções com vetores
homogêneos e
heterogêneos
em Dev C++
Definição de valores em vetores
 Em programação, vetor (array) é um tipo especial de
variável capaz de armazenar diversos valores “ao mesmo
tempo” usando um mesmo endereço na memória.
 Por armazenar diversos valores também é chamado de
variável composta, ou ainda estrutura de dado matricial
(MANZANO, 2010).
 A capacidade do vetor, ou seja, quantos elementos ele
consegue guardar, deve ser determinada no momento em
que se declara essa variável especial;
 O vetor é uma variável composta unidimensional, ou seja,
o acesso a seus dados tanto para leitura como para escrita
precisa apenas de um índice;
Características de valores em vetores
 Um vetor pode ser homogêneo, ou seja, armazenar apenas
um tipo de valor (real, inteiro, caracter etc.);
 Pode ser heterogêneo e armazenar valores de diferentes
tipos. Caso ele seja heterogêneo o nome struct (estrutura)
é mais adequado para identificar esse tipo.
 Independentemente de ele ser homogêneo ou
heterogêneo, a velocidade do acesso aos seus dados é a
mesma.
 Isso acontece porque os dados são alocados
sequencialmente na memória, a fim de otimizar o
desempenho do sistema.
Informações Importantes de vetores
 Vetor[0] = 4; // Coloca 4 na primeira posição de "Vetor"
 Vetor[4] = 8; // Coloca 8 na última posição de "Vetor“
 #define TAMANHO 5 para definir uma constante, que será
usada para estabelecer o tamanho do vetor.
 Preenchimento de um vetor com um dado
for(i=0; i<5; i++) for(i=0; i<=4; i++)
Vetor[i] = 30; Vetor[i] = 30;
 Colocar os números de 1 a 5 em Vetor
for(i=0; i<5; i++)
Vetor[i] = i+1;
 Colocar os números de 5 a 1 em Vetor
for(i=0; i<5; i++)
Vetor[i] = 5-i;
Sintaxe de vetores homogêneos na linguagem C
Para criar um vetor homogêneo basta escrever o tipo da
variável seguido do nome do vetor seguido de colchetes e a
quantidade de elementos. Devemos ainda colocar um ponto e
vírgula ao final
da linha de comando.
Exemplos
1) Posições e vetores
#include<stdio.h>
#include<conio.h>
int main(void)
{
float notas[5] = {5, 6, 7, 8, 9.9};
printf("Exibindo os Valores do Vetor \n\n");
printf("notas[0] = %.1f\n", notas[0]);
printf("notas[1] = %.1f\n", notas[1]);
printf("notas[2] = %.1f\n", notas[2]);
printf("notas[3] = %.1f\n", notas[3]);
printf("notas[4] = %.1f\n", notas[4]);
getch();
return 0;
}
2) Montagem de um vetor de 10 posições
#include <stdio.h>
#include <string.h>
void Imprime (int N)
{
printf("%d", N);
}
int main()
{
int i;
int Vet[10];
for(i = 0; i < 10; i++)
{
Vet[i] = i;
2) Montagem de um vetor de 10 posições
}
for (i=0; i< 10; i++)
{
Imprime(Vet[i]);
}
return 0;
}
3) Índices e números
#include "stdio.h"
#include "conio.h"
#define TAMANHO 5
main(){
int vetor[TAMANHO];
int i, num;
printf ("Digite o numero inicial do Vetor. ");
scanf ("%d", &num);
for (i = 0 ; i < TAMANHO; i++){
vetor[i] = num++; }
for (i = 0; i < TAMANHO; i++){
printf ("Elemento %d = %d\n", i, vetor[i]); }
getche();}
4) Soma
#include <stdio.h>
int main()
{
int A[6] = {1,0,5,-2,-5,7};
int soma, i;
soma = A[0] + A[1] + A[5];
printf("Soma: %d\n\n",soma);
return 0;
}
5) Armazenamento da media na terceira posição
#include <stdio.h>
int main()
{
float notas[3];
printf("Insira sua primeira nota: ");
scanf("%f", &notas[0]);
printf("Insira sua segunda nota: ");
scanf("%f", &notas[1]);
notas[2] = (notas[0] + notas[1])/2;
printf("Sua media e: %.2f\n", notas[2]);
}
O vetor de caracteres
Vetor de caracteres
Armazenarmos palavras ou frases, estes nada mais são do que
um conjunto de caracteres. Portanto, para representar tal
conjunto precisamos de uma variável que armazene uma
cadeia de caracteres (MANZANO, 2015), ou seja, um vetor de
caracteres.
Esse tipo de dado é chamado de string, e não é considerado
um tipo primitivo.
Para guardar valores que o usuário digitou é preciso usar a
função scanf(“%s”,&destino) ou fgets(destino,tamanho,fluxo),
ambas pertencentes à biblioteca <stdio.h>.
Função scanf() e Função fgets()
 A função scanf(“%s”) armazena apenas palavras simples,
ou seja, ela interrompe o armazenamento quando
encontra um “espaço em branco”.
 A função fgets() tem outro comportamento, ela armazena
qualquer caractere, inclusive espaços em branco, até que
seu tamanho suporte.
Características da função fgets()
 O último parâmetro dessa função se refere ao fluxo de
origem da string, de onde está vindo, e pode ser do teclado
(stdin), de arquivo de texto, ou até de banco de dados.
 Para que o comando funcione corretamente adicionamos a
função fflush(stdin) antes de capturar a entrada, pois essa
função limpa qualquer “lixo” que esteja na memória
(buffer) do fluxo de entrada.
Função scanf() e Função fgets()
 Uma sequência de caracteres é considerada terminada
quando nela há o código de finalização definido por meio
do símbolo “\0”, que é colocado ao ser acionada a tecla
<Enter>.” (MANZANO, 2015, p. 394).
Sintaxe de vetores heterogêneos na linguagem C
Um recurso muito utilizado em programação é armazenar um
conjunto de dados dentro de uma mesma variável, formando
assim uma estrutura heterogênea ou, como é conhecido na
linguagem C, struct (DEITEL; DEITEL, 2011).
É importante ressaltar que uma struct funciona como um “tipo
de dado”, e para que seja possível utilizá-la é necessário
atribuir uma (ou mais) variáveis à estrutura criada.
Exemplos
6) Armazenamento de Strings
#include <stdio.h>
int main(){
char equipamento[20];
char departamento[20];
printf("Digite o equipamento: ");
scanf("%s",equipamento);
printf("Digite o departamento: ");
fflush(stdin);
fgets(departamento,20,stdin);
getchar();
}
7) Idade, peso e altura de uma pessoa
#include <stdio.h>
typedef struct
{
float Peso;
int Idade;
float Altura;
} Pessoa;
Pessoa SetPessoa(int idade, float peso, float altura)
{
Pessoa P;
P.Idade = idade;
P.Peso = peso;
P.Altura = altura;
return P;
7) Idade, peso e altura de uma pessoa
}
void ImprimePessoa(Pessoa P)
{
printf("Idade: %d Peso: %f Altura: %f\n", P.Idade, P.Peso,
P.Altura);
}

int main()
{
Pessoa Joao;
Joao = SetPessoa(28,70.5,1.85); // atribui o retorno da
função a uma variável struct
ImprimePessoa(Joao);
return 0;
}
8) Ordem de serviço
main(){
struct ficha_manutencao {
int codigo;
char equipamento[20];
float valor;};
struct ficha_manutencao ordemServico;
printf("Digite o código da ordem de serviço: \n");
scanf("%d",&ordemServico.codigo);
printf("Digite o equipamento: \n");
fflush(stdin);
fgets(ordemServico.equipamento,20,stdin);
printf("Digite o valor: \n");
scanf("%f",&ordemServico.valor);
getchar();}
9) Sensor com 10 temperaturas e faz media dia
#include <stdio.h>
int CalcularMedia(float temperatura){
float media;
media = temperatura / 10;
printf("A média diária da temperatura foi: %.2f",media);
}
int main(){
float temperaturas[10];
float total;
int i;
9) Sensor com 10 temperaturas e faz media dia
for(i=0;i<10;i++){
printf("Informe a temperatura %d: ",i);
scanf("%f",&temperaturas[i]);
total = total + temperaturas[i];
}
CalcularMedia(total);
getchar();
}
Relatório
Registre suas observações em um relatório a ser entregue no
fim da prática.
Boa atividade a todos!
Obrigada!

Você também pode gostar