Buscar

Documento 21

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Relatório 3 – Vetores e Matrizes. Modularização 
 
Vetores 
Vetores(arrays em ingles) são estruturas utilizadas para armazenar dados de um mesmo tipo. 
Um vetor fazem o uso de um mesmo nome de variável para acessar tal valores. Um vetor 
também pode ser entendido logicamente como uma lista de elementos de um mesmo tipo. 
Cada elemento desta sequência pode ser acessado individualmente através de um índice dado 
por um número inteiro. Quando um vetor de um determinado tamanho é declarado, uma área 
da memória, suficiente para armazenar todos os elementos do vetor, é reservada. Essa área 
recebe o nome do vetor, e suas específicas quantidades de elementos podem ser acessados 
através de um índice entre colchetes []. O primeiro elemento do vetor é acessado pelo índice 
0 (zero), e o último pelo índice numero declarado menos 1 (N -1). E ficaria assim: 
 
 C O M E R B O L O 
 
caracter Fome [12]; 
 
Matriz 
 
Matrizes são arrays multidimensionais, ou seja, eles não são totalmente lineares, e sim, 
geométricos. 
Enquanto um array tem apenas uma linha com vários valores, uma matriz pode, por exemplo, 
ter várias linhas com vários valores, que chamamos de linhas e colunas. 
Para criarmos um array multidimensional (ou matriz), procedemos da mesma forma que um 
array normal, porém com mais um dimensionador. E ficaria assim: 
int quadro [2, 5] 
 
 
 
Matriz [2,5]. Mostrando que criamos uma matriz de 2 linhas e 5 colunas. 
 
Os arrys tem a vantagem de que os seus elementos são acessíveis de forma rápida mas têm 
uma notável limitação: são de tamanho fixo, mas podem ser incrementados ou diminuídos 
com determinados algoritmos, geralmente envolvendo a cópia de elementos de um arranjo 
para outro e reiniciar o original com a nova dimensão. 
 
 
 
 
Modulação 
 
A modulação consiste em decompor um programa em uma série de subprogramas 
individuais. Trata-se de um método utilizado para facilitar a construção de grandes 
programas, através se sua divisão em pequenas etapas que são os módulos ou subprogramas. 
A primeira delas, por onde começa a execução do trabalho, recebe o nome de programa 
principal, e as outras são os subprogramas propriamente ditos, que são executados sempre 
que ocorre uma chamada dos mesmos, p que é feito através da especificação de seus nomes. 
 
 
 
Pode-se observar que ele descreve uma estrutura hierárquica. O controle da execução do 
algoritmo fica sob a responsabilidade do módulo principal e os outros módulos respondem 
por rotinas específicas do problema. Quando os módulos de um programa respondem por 
realizar rotinas específicas que contribuem para a solução do problema diz-se que realizou-se 
uma decomposição funcional, isto é, o módulo executa alguma função específica do 
problema. Há outras formas de decomposição de um algoritmo . 
 
 
 
 
 
 
Um módulo deve ser pequeno, pois módulos grandes são difíceis de ser compreendidos. Deve 
implementar uma única funcionalidade. Os módulos podem ser testados separadamente e 
pode usar a reutilização de código pois um módulo pode ser utilizado em outros algoritmos 
que requeiram a mesma funcionalidade. 
 
Passagem de parâmetros para Funções 
 
A linguagem de programação C permite que os parâmetros sejam passados para as funções de 
duas maneiras, por valor e por referência. Na passagem por valor, como o próprio nome diz, 
uma expressão pode ser utilizada na chamada. O valor da expressão é calculada, e o valor 
resultante é passado para a execução da função. Na passagem por referência, o endereço de 
uma variável deve ser passado na chamada da função. Dessa forma, a função pode modificar 
a variável diretamente, o que em geral não é recomendável, mas há situações onde esse 
recurso é necessário, por exemplo, para a criação de funções que devolvem mais de um valor. 
 
Passagem por Valor 
É a forma mais comum utilizada para passagem de parâmetros. Por exemplo, considere a 
família de funções trigonométricas, como seno, cosseno, etc. A função seno, por exemplo, 
recebe o valor de um ângulo (um número real) e devolve o seno desse ângulo. Se tivermos as 
funções seno e cosseno, podemos facilmente definir uma função tangente. 
 
Passagem por Referência 
É usado quando desejamos criar uma função que retorne mais de um valor. Diferente das 
funções de seno, cosseno, potencia, etc, que só devolvem um valor, mas outras funções, que 
trabalhem com números imaginários por exemplo, precisam retornar 2 valores. Na linguagem 
C a passagem por referência é implementada com o uso de ponteiros.Usando ponteiros 
(também chamados de apontadores) é possível alterar os valores das variáveis passadas como 
argumentos para uma função. 
 
Relatório 4 – Strings e Tipos Estruturados(Registros) 
 
String é uma sequência de caracteres utilizada para o armazenamento de texto. Na linguagem 
C strings são vetores de caracteres que possuem um caractere que indica o término de seu 
conteúdo, o caractere nulo ‘\0’ (contrabarra zero). Sendo assim, para termos uma string, 
sempre temos que ter uma posição a mais de tamanho no vetor para este caracter no final. A 
linguagem C não possui um tipo específico de dados Strings. Para fazer uma string, o C 
utiliza um vetor de caracteres, onde cada posição do vetor representa uma letra. Por exemplo, 
para armazenarmos a palavra CACHORRO, temos que declarar um vetor do tipo char com 
nove posições, e elas ocuparão posições sequenciais na memória. 
char palavra [9]; 
 
Índice 1 2 3 4 5 6 7 8 9 
Valor C A C H O R R O \0 
 
Manipulação de Strings 
A linguagem C apesar de não apresentar um tipo específico “string”, apresenta uma série de 
funções que podem ser aplicadas a uma variável do tipo vetor de caracteres. A maioria das 
funções de manipulação de string apresenta seus cabeçalhos em string.h. Dentre as principais 
funções destacam-se: 
 
Função printf() e puts() 
A função printf() é utilizada para escrever uma string no vídeo. A função recebe como 
parâmetro uma string que pode ser escrita diretamente no vídeo. A função printf() também 
pode imprimir o conteúdo de uma string que está armazenada em um vetor de caracteres. 
Nesse caso usa-se o formato próprio de string (%s). Função printf() e puts() 
A função printf() é utilizada para escrever uma string no vídeo. A função recebe como 
parâmetro uma string que pode ser escrita diretamente no vídeo, por exemplo: 
printf(“Testando strings”). A função printf() também pode imprimir o conteúdo de uma string 
que está armazenada em um vetor de caracteres. Nesse caso usa-se o formato próprio de 
string (%s). 
 
Função scanf() e gets() 
A função scanf() permite a leitura de strings usando o formato %s. Para a leitura de strings a 
função permite ler apenas uma palavra, ou seja, a função lê todos os caracteres até encontrar 
um espaço em branco ou um TAB ou um ENTER. Para a leitura de strings a melhor a função 
é gets() da biblioteca stdio.h. 
 
Função fgets(s, TAM, stdin) 
Lê uma string de tamanho TAM do dispositivo de entrada padrão e armazena esta string em 
s. 
 
Definição de Estruturas 
Estruturas de dados é o nome dado a organização de dados e algoritmos de forma coerente e 
racional de modo a otimizar o seu uso. De acordo com o modo como um conjunto de dados 
são organizados e como as operações que são efetuadas sobre estes dados pode-se solucionar 
de forma simples problemas extremamente complexos.Existem diversos modelos de 
estruturas de dados, e novos modelos são criados constantemente pois acompanham também 
a evolução dos algoritmos e das linguagens de programação. Neste curso iremos abordar as 
estruturas clássicas, as quais podem ser utilizadascom sucesso na maioria dos casos, como 
por exemplo, pilhas, vetores e listas. 
 
Construção e Implementação de Estruturas em Linguagem C. 
 
A linguagem C possui tipos para números inteiros de vários tamanhos com e sem sinal, 
números de ponto flutuante, caracteres e estruturas (structs). C usa extensivamente ponteiros, 
um tipo muito simples de referência que guarda o endereço de memória da variável. 
Como a linguagem C é regularmente usada em programação de baixo-nível de sistemas, há 
casos em que é necessário tratar um número inteiro como sendo um ponteiro, um número de 
ponto flutuante como sendo um número inteiro ou um tipo de ponteiro como sendo outro. 
Para estes casos, a linguagem C fornece a capacidade de "moldagem" (também denominado 
"conversão de tipo" ou casting), uma operação que, caso seja possível, força a conversão de 
um objecto de um tipo para outro. Apesar de ser por vezes necessário, o uso de conversões de 
tipo sacrifica alguma segurança oferecida pelo sistema de tipos. 
int 
O tipo de dado int (inteiro) serve para armazenar valores numéricos inteiros. Existem vários 
tipos de inteiros, cada um de um tamanho diferente (dependendo do sistema operacional e/ou 
arquitetura do processador): 
 int, pode possuir 16 bits, 32 bits ou 64 bits 
 short int, deve possuir tamanho de no mínimo 16 bits e não pode ser maior que 
int 
 long int, deve possuir tamanho mínimo de 32 bits 
 long long int, deve possuir tamanho mínimo de 64 bits 
 
 
char 
O tipo char ocupa 1 byte, e serve para armazenar caracteres ou inteiros. Isso significa que o 
programa reserva um espaço de 8 bits na memória RAM ou em registradores do processador 
para armazenar um valor (char de tamanho maior que 8 bits é permitido pela linguagem, mas 
os casos são raros). Com vetores do tipo char é possível criar cadeias de caracteres (strings). 
float 
O tipo de dado float serve para armazenar números de ponto flutuante, ou seja, com casas 
decimais. O padrão mais utilizado nos últimos 10 anos é o IEEE 754-1985. 
double 
O tipo de dado double serve para armazenar números de ponto flutuante de dupla precisão, 
normalmente tem o dobro do tamanho do float e portanto o dobro da capacidade. O padrão 
mais adotado também é o IEEE 754-1985. 
Struct 
Em C podem ser usadas estruturas (chamados de registos em outras linguagens de 
programação). As estruturas são grupos de variáveis organizadas arbitrariamente pelo 
programador. Uma estrutura pode criar um novo tipo de variável caso typedef seja usado em 
sua declaração. 
 
Modelagem e utilização de Funções que manipulam Estruturas. 
 
Modelar significa criar um modelo que explique as características de funcionamento e 
comportamento de um software a partir do qual ele será criado, facilitando seu entendimento 
e seu projeto, através das características principais que evitarão erros de programação, projeto 
e funcionamento. É uma parte importante do desenho de um sistema de informação. 
A abordagem que se dispensa ao assunto normalmente atende a três perspectivas: 
 Modelagem Conceitual: é usada como representação de alto nível e considera 
exclusivamente o ponto de vista do usuário criador dos dados; 
 Modelagem Lógica: agrega mais alguns detalhes de implementação. 
 Modelagem Física: demonstra como os dados são fisicamente armazenados. 
Quanto ao objetivo, podemos identificar as seguintes variações: 
 modelagem de dados entidade-relacionamento (leitura, construção e validação dos 
modelos); 
 modelagem de relacionamentos complexos, grupos de dados lógicos e ciclo de vida 
das entidades; 
 modelagem de dados corporativa; 
 modelagem de dados distribuídos (cliente/servidor); 
 modelagem e reengenharia de dados legados e 
 modelagem de dados para Data Warehouse. 
 
 
 Para manipular string, é preciso ter certo cuidado, pois a matriz sempre tem um tamanho 
definido e caso façamos um acesso a um endereço fora da matriz invadiremos outras áreas de 
memória que não temos como definir o que são, e portanto poderemos fazer o programa parar 
de funcionar, em muitos sistemas pode também haver danos aos outros programas e até 
mesmo ao próprio sistema operacional, porém em sistemas operacionais mais sofisticados 
como o GNU/Linux, que possuem gerenciamento de memória com proteção de memória, 
apenas o programa que causou a falha irá parar de funcionar. 
Para manipular este tipo de string puro, a biblioteca padrão da linguagem C dispõe de 
diversas funções. 
 
 
printf("Numero do pedido:"); 
gets(num_pedido); 
Escrita dos dados de cliente. 
printf("DIgite o nome do cliente:"); 
gets(nome); 
printf("\n\n"); 
printf("Digite o endereco:"); 
gets(endereco); { 
printf("\n\n"); 
printf("Digite o municipio:"); 
gets(municipio); 
{ 
printf("\n\n"); 
printf("Digite o Estado:"); 
gets(Estado); 
} 
printf("\n\n"); 
printf("Digite o numero da casa:\n"); 
gets(num_casa); 
} 
{ 
printf("\n\n"); 
printf("Digite o cep da rua:"); 
gets(cep); { 
printf("\n\n"); 
printf("Digite o Telefone:"); 
gets(Telefone); 
Escrita dos dados de sequência de corte. 
printf("Digite o diametro da bobina:"); 
gets(diametro); 
printf("\n\n"); 
printf("Digite a largura da bobina:"); 
gets(largura); 
printf("\n\n"); 
printf("Informe o peso da bobina:"); 
gets(peso); 
Impressão dos dados de pedido. 
printf("Numero do pedido:"); 
Impressão dos dados de cliente. 
printf("Digite o nome do cliente:"); 
printf("Digite o endereco:"); 
printf("Digite o municipio:"); 
printf("Digite o numero da casa:"); 
printf("Digite o cep da rua:"); 
printf("Digite o Telefone:"); 
Impressão dos dados de sequencia de corte. 
printf(" –Informe a Largura do Material:"); 
printf(" - Informe oDiametrodo Material:"); 
printf(" – Informe o Peso por Metro Linear:"); 
	Passagem por Valor
	Passagem por Referência

Outros materiais