Você está na página 1de 7

Passo 3 :

Vetores Matrizes Modularizao


Os tipos de dados bsicos so numricos (inteiros e reais), lgicos e caracteres. Com base
nesses tipos bsicos podemos construir tipos compostos: homogneos (vetores e matrizes) e
heterogneos (registros). Vetor e Matriz Os tipos de dados compostos homogneos so
conjuntos do mesmo tipo bsico. Diversos nomes so utilizados para esse tipo de estrutura,
tais como variveis indexadas, compostas, arranjos, arrays, vetores e matrizes. Faremos uso
dos termos mais conhecidos: vetores e matrizes. Os tipos compostas homogneas, comumente
chamadas de array, so conjuntos de elementos de um mesmo tipo e so representados por um
nico nome. Dependendo de sua dimenso, ou seja, a quantidade de ndices necessria para a
individualizao de cada elemento do conjunto, o array recebe nomes diferentes: o array
unidimensional chamado de vetor e o array bidimensional conhecido por matriz. A Figura
a seguir ilustra bem esse aspecto dimensional.
Vetor uma lista de elementos do mesmo tipo. Esse tipo de dados til, por exemplo,
quando queremos armazenar todas as idades dos alunos de uma sala de aula. Imagine uma
sala de aula com 20 alunos. Se no tivssemos o tipo de dado vetor, teramos que declarar 20
variveis para guardar os pesos. Com essa diferena, conseguimos fazer em duas verses: a
primeira com variveis simples, e a outra com vetor. Analisando os dois algoritmos,
percebemos a quantidade de variveis utilizadas.
A matriz um tipo de dado usado para representar uma quantidade de variveis que so
referenciados pelo mesmo nome. Consiste em locaes contguas de memria. O endereo
mais baixo corresponde ao primeiro elemento. Matriz unidimensional Sintaxe: tipo nome
[tamanho]; A matriz tem 0 como ndice do primeiro elemento, portanto sendo declarada uma
matriz de inteiros de 10 elementos, o ndice varia de 0 a 9.
Modularizao em C no existe uma distino entre funes e sub-rotinas. Ou seja, todas
as sub-rotinas, do ponto de vista de algoritmos, podem ser tratadas como funes que no
retornam nenhum valor. Tipo de retorno especifica o tipo do valor que ser retornado para
quem chamou a funo. Quando o tipo de retorno for void (violado) isto significa que se trata
de uma funo que se comporta como uma sub-rotina; ou seja, a funo no necessita retornar
nenhum valor, apenas ser chamada.

Algoritmo Bobina Jumbo;

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main (){
int compu, var,quest;
inicio:
system("CLS");
printf("\t\t''BOBINA JUMBO'' ");
printf("\n\nTAMANHO MINIMO de bobina: 100mm\nTAMANHO MAXIMO de
bobina: 1500mm ");
printf("\nNumero de BOBINA JUMBO por Pedido: \"1\".");
printf("\n\n\nEntre com o numero de bobinas: ");
scanf("%d", &compu);
float vetor[compu], result=0, reciclagem;
for(var=0; var<compu; var++)
{
system("CLS");
printf("\t\t''BOBINA JUMBO'' ");
printf("\n\nTAMANHO MINIMO de bobina: 100mm\nTAMANHO
MAXIMO de bobina: 1500mm ");
printf("\nNumero de BOBINA JUMBO por Pedido: \"1\".");
printf("\n\n\nEntre com o tamanho da bobina %d: ", var+1);

scanf("%f", &vetor[var]);
result=vetor[var]+result;
if(vetor[var]<100)
{
system("CLS");
printf("\t\t''BOBINA JUMBO'' ");
printf("\nPEDIDO INVALIDO!!!");
printf("\n\n\nVoce

digitou

\"%.1f\",

esse

valor

eh

invalido!!!\ntamanho p corte da bobina eh de 100 ate 1500!!! \n\nPor favor reinicie o seu
pedido.", vetor[var]);
var=compu;
}
else if (vetor[var]>1500)
{
system("CLS");
printf("\t\t''BOBINA JUMBO'' ");
printf("\nPEDIDO INVALIDO!!!");
printf("\n\nVoce digitou \"%.1f\", esse valor eh
invalido!!!\ntamanho p corte da bobina eh de 100 ate 1500!!! \n\nPor favor reinicie o seu
pedido.", vetor[var]);
var=compu;
}
}
reciclagem=(1-(result/2400))*100;

printf("\n\nTAMANHO Total utilizado na BOBINA JUMBO: %.1fmm", result);


printf("\n\nRECICLAGEM: %.2f Porcento", reciclagem);
if(reciclagem>30)
{
inicio3:
printf("\n\tPEDIDO NAO ACEITO\n\tEXISTE UM DESPERDICIO
MAIOR QUE 30 PORCENTO\n\tDIGITE UM NOVO PEDIDO\n");
printf("\nDeseja fazer outro Pedido?\n\t\t\tDigite 1 para SIM\n\t\t\tDigite
2 para NAO\n");
scanf("%d", &quest);
if(quest==1)
{
goto inicio;
}
else if(quest>2)
{
printf ("\nNumero invalido!!!!\n");
goto inicio3;
}
}
else if(result>2400)
{
inicio1:
system("CLS");

printf("\t\t

''BOBINA JUMBO'' ");

printf("\nPEDIDO INVALIDO!!!");
printf("\nPedido excedeu Tamanho de uma BOBINA
JUMBO.");
var=compu;
printf("\nDeseja Refazer o Pedido?\nDigite 1 para
SIM\nDigite 2 para NAO\n");
scanf("%d", & quest);
system("CLS");
if(quest==1)
{
goto inicio;
}
else if(quest>2)
{
printf ("\nNumero invalido!!!!\n");
goto inicio1;
}
}
else
{
inicio2:
system("CLS");
printf("\nPEDIDO EFETUADO!!!");

printf("\nTAMANHO Total utilizado na BOBINA JUMBO:


%.1fmm", result);
printf("\nRECICLAGEM: %.2f Porcento", reciclagem);
printf("\n\n");
printf("\n\nDeseja fazer mais pedidos?\nDigite 1 para
SIM\nDigite 2 para NAO\n");
scanf("%d", & quest);
system("CLS");
if(quest==1)
{
goto inicio;
}
else if(quest>2)
{
printf ("\nNumero invalido!!!!\n");
goto inicio2;
}
}
system("CLS");
printf("\n\nObrigado e ate o proximo pedido!!!");
printf("\n\n");
system ("PAUSE");
}

Passo 4;
Strings e Tipos Estruturados (Registros)
String uma sequencia de caracteres utilizados para o armazenamento de texto. Na
linguagem C strings so vetores de caracteres que possuem um caractere que indica o trmino
de seu contedo, o caractere nulo \0 (contrabarra zero). Como a string possui o caractere
nulo para delimitar o final do seu contedo, o tamanho da string deve ser definido com um
caractere a mais do que ser efetivamente necessrio.
Uma string pode ser inicializada na sua declarao com uma sequncia de caracteres
entre chaves e separadas por vrgula: {t,e,x,t,o,\0}; . Lembre-se que o compilador s
reconhecer um caractere se este estiver entre aspas simples, logo usar uma atribuio do
tipo {t,e,x,t,o,\0} ou {texto\0} ir gerar um erro de compilao. Pode tambm ser inicializada
por uma sequencia de caracteres entre aspas duplas. Neste caso, no necessrio o uso de
aspas simples e vrgulas, o compilador C coloca automaticamente o '\0' no final: texto;
Um vetor de strings pode ser usado para guardar os nomes dos funcionrios de uma
empresa. Um vetor de reais pode ser usado para guardar seus salrios.
Entretanto, uma matriz bidimensional no pode ser usada para guardar nomes e os
salrios dos funcionrios, porque todos os elementos de uma matriz devem ser do mesmo
tipo. Ento, estruturas que usam elementos de tipos diferentes, mas que esto logicamente
relacionados entre si, muito comum em vrias reas. Uma estrutura desse tipo definida em
Turbo Pascal como um conjunto de posies de memria, conhecidos por um mesmo nome e
individualizados por identificadores associados a cada conjunto de posies. Esse conjunto de
informaes do empregado ser referenciado por um identificador.

Você também pode gostar