2. 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
3. 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.
Um vetor pode ser homogêneo, ou seja, armazenar apenas um tipo de valor (real,
inteiro, caracter etc.), ou 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.
4. 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.
6. Em qualquer vetor o primeiro índice é sempre 0, portanto se declaramos que o
vetor tem capacidade para 5 elementos, seu índice irá variar de 0 a 4 (de n até
n-1).
Não é obrigatório que todas as posições sejam ocupadas, você pode declarar um
vetor com 10 posições e usar somente 5.
A atribuição em vetores do tipo char é feita de maneira diferente, usando a função
strcpy (destino,“texto”), disponível na biblioteca <string.h>. Exemplo:
strcpy(produto, “Processador i7”), guarda no vetor produto o texto Processador i7 .
7. #include <stdio.h>
void main()
{
int numeros[5];
printf("Digite um numero: ");
scanf("%d",&numeros[0]);
printf("Voce digitou o valor: %d",numeros[0]*2);
getchar();
}
O comando getchar() é usado
para fazer uma parada no
sistema, sem esse comando a
janela de execução abre e
fecha e não conseguimos ver o
programa funcionando.
8. O tipo char é primitivo em qualquer linguagem e uma variável desse tipo tem
capacidade para armazenar um único caractere. Porém, o mais comum é
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, ou seja, um vetor de caracteres.
Esse tipo de dado é chamado de string, e não é considerado um tipo primitivo
9. Para guardar valores que o usuário digitou
é preciso usar a função scanf ou fgets
(destino, tamanho, fluxo), ambas
pertencentes à biblioteca <stdio.h>
#include <stdio.h>
void 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();
}
10. 1. #include <stdio.h>
2. void main()
3. {
4. char equipamento[20];
5. char departamento[20];
6. printf("Digite o equipamento: ");
7. scanf("%s",equipamento);
8. printf("Digite o departamento:
");
9. fflush(stdin);
10. fgets(departamento,20,stdin);
11. getchar();
12. }
Na linha 6 utilizamos a função scanf () para
guardar o equipamento digitado pelo usuário,
veja que usamos o código “%s” para “informar”
a função que vamos guardar uma string . Já na
linha 9 usamos a função fgets () para guardar o
departamento, que possui um tamanho máximo
de 20 caracteres e seu fluxo de dados está vindo
do “ stdin ” ou seja, da entrada padrão que é o
teclado
11. Diferença entre as funções:
A função scanf(“%s”) armazena apenas palavras simples, ou seja, ela interrompe o
armazenamento quando encontra um “espaço em branco”.
Já a função fgets() tem outro comportamento, ela armazena qualquer caractere,
inclusive espaços em branco, até que seu tamanho suporte.
12. 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.
13.
14. Na linha 1 é usado o comando struct para iniciar o bloco que
cria a variável composta seguido de um nome para
identificar tal estrutura, no nosso caso o nome escolhido foi
“ficha_ manutencao”
Das linhas 2 a 6 é feita a declaração dos campos que farão
parte dessa estrutura. O bloco deve estar entre chaves e a
chave que fecha o bloco tem que vir acompanhada por ponto
e vírgula (linha 7).
Na linha 8 temos a variável “ordemServico” sendo declarada
com seu tipo “struct ficha_manutencao”, pois é através
dessa variável que acessaremos os campos para leitura e
escrita.
15. #include <stdio.h>
void 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");
scanf("%s",&ordemServico.equipamento);
printf("Digite o valor: n");
scanf("%f",&ordemServico.valor);
printf (“O equipamento é %s ",
ordemServico.equipamento);
getchar();
getchar();
}
16. Quando utilizamos campos que não são do tipo char dentro da struct , podemos
atribuir valores direto sem a função scanf() da seguinte forma:
ordemServico.codigo = 12345;
ordemServico.valor = 2130;
Para os campos de caracteres essa atribuição não é permitida na linguagem C. Se
quisermos fazer essa atribuição direta sem uso do scanf() , devemos utilizar a
função strcpy(destino,“texto”) que pertence à biblioteca <string.h>. Então usando
essa função podemos atribuir caracteres da seguinte forma:
strcpy(ordemServico.maquina,“Braçomecânico”);
strcpy(ordemServico.departamento,“Produção”);
17. Para que os vetores sejam melhor aproveitados é interessante utilizá-los juntamente com
as estruturas de repetição, principalmente a estrutura com variável de controle.
A variável de controle da estrutura de repetição será usada como o índice para a
leitura/armazenamento de dados no vetor, portanto a sintaxe será:
18. #include <stdio.h>
float main ()
{
float x[10];
int i;
i=0;
for (i=0;i<10;i++)
{
printf("n digite o valor %d ", i);
scanf ("%f", &x[i]);
}
printf ("%f e %f", x[1], x[7]);
}
19. Sub-rotinas, ou como são mais comumente chamadas, funções, são utilizadas para
organizar o programa e evitar a repetição de comandos.
A sintaxe da declaração de uma função pode ser feita antes ou depois da função da
principal (main) e é feita da seguinte forma:
20. #include <stdio.h>
void CalcularMedia(float
temperatura)
{
float media;
media = temperatura / 3;
printf("A média diária da
temperatura foi: %.2f",media);
}
void main()
{
float temperaturas[10];
float total;
int i;
for(i=0;i<3;i++)
{
printf("Informe a temperatura %d: ",i);
scanf("%f",&temperaturas[i]);
total = total + temperaturas[i];
}
CalcularMedia(total);
getchar();
}
21. Faça um programa que armazena o combustível gasto por cada um dos quinze
automóveis da empresa em que você trabalha. O formulário deve permitir a entrada
de dados nas unidades: quilômetro, metro ou milha, e você deve garantir que o dado
que será guardado estará na unidade quilômetro. A conversão da unidade deve ser
feita em uma sub-rotina.
22. #include <stdio.h>
float TestarUnidade (int unidade, float km)
{
switch (unidade)
{
case 1:
printf ("A distãncia percorrida foi %.2f km", km);
break;
case 2:
printf ("A distãncia percorrida foi %.2f km", km/1000);
break;
case 3:
printf ("A distãncia percorrida foi %.2f km", km/0.621371);
break;
default:
printf ("UNIDADE NÃO ENCONTRADA");
}
}
void main()
{
float distancia [15];
float total, totalConvertido;
int unidadeusada;
int i;
for (i=1; i<=15; i++)
{
printf("digite o valor da quilometragem do carro %d
", i);
scanf ("%f", &distancia[i]);
total = total + distancia[i];
}
printf( "nEscolha a opção da unidade utilizada");
printf("n 1 - km");
printf("n 2 - m");
printf("n 3 - milha n");
scanf("%d", &unidadeusada);
totalConvertido = TestarUnidade
(unidadeusada,total);
getchar();
}
23. Faça um programa que calcule a média de notas dos alunos de um determinado
professor. Sabendo que esse professor ministra 4 matérias diferentes e em todas as
turmas existem 10 alunos:
A média deve ser calculada por uma subrotina.
Disciplina Nº de provas
Algoritmos 2
Projeto de Máquinas 5
Mecânica Geral 4
Usinagem 6
24. Faça um algoritmo que calcule a despesa com energia gasta por um processo produtivo de
aquecimento em forno mufla.
A taxa de aquecimento do forno é de 3°C/min e o processo deve ocorrer a uma temperatura de
315°C. O custo do processo é de R$1,50/min.
As informações serão fornecidas em °F e o programa deve conter uma subrotina que seja capaz de
converter a temperatura para °C.
O relatório final deve apresentar o custo em US$, considerando a cotação de 1 real=5,3 dólares