




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Fornece conceitos e exemplos da aplicação de estruturas de dados usando a linguagem C.
Tipologia: Trabalhos
1 / 251
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Estrutura de Dados
Estrutura de Dados
Conhecer e identificar a estrutura básica de um programa em C. Implementar programas básicos na linguagem C. Implementar programas em C utilizando as estruturas de decisão e as estruturas em laços.
Habitualmente antes de resolvermos exemplos ou exercícios, elaboraremos o algoritmo, que nada mais é que uma sequência de operações cuja execução produz um resultado que é a resposta de um problema proposto. Um programa de computador nada mais é que a codificação de um algoritmo numa linguagem de programação. Linguagens como C, Pascal, BASIC, ALGOL, Clipper, COBOL, etc., são chamadas procedurais, devido ao fato das instruções serem executadas de forma sequencial, enquanto que as linguagens baseadas no conceito de eventos como C++, C##, Java, Visual BASIC, utilizam outra estratégia de programação (Programação Orientada ao Objeto). Em C utilizaremos a metodologia estruturada.
Introdução
A linguagem C foi desenvolvida inicialmente por Dennis M. Ritchie e Ken Tompson no laboratório Bell no ano de 1972. Baseada na linguagem B criada por Tompson, esta linguagem evoluiu da linguagem BCPL, dando origem as duas linguagens anteriores. C foi inicialmente projetada para ser utilizada no sistema operacional Unix. Podemos definir a linguagem C como sendo uma linguagem de programação robusta e multiplataforma, projetada para aplicações modulares de rápido acesso.
Veremos aqui a estrutura ANSI C (ANSI É a sigla para American National Standards Institute e designa uma organização americana que tem a função de estabelecer quais normas desenvolvidas devem virar padrão.), versão padrão definida pelo comitê americano ANSI e suportada praticamente por todos os compiladores C. Podendo ser
Estrutura de Dados
considerada como uma linguagem de médio nível, pois possui instruções que a tornam ora uma linguagem de alto nível e estruturada como o Pascal, se assim se fizer necessário, ora uma linguagem de baixo nível, pois possui instruções tão próximas da máquina, que só o Assembler possui. De fato, com a linguagem C podemos construir programas organizados e concisos (como o Pascal), ocupando pouco espaço de memória com alta velocidade de execução (como o Assembler). Infelizmente, dada toda a flexibilidade da linguagem, também poderemos escrever programas desorganizados e difíceis de serem compreendidos (como usualmente são os programas em BASIC). Devemos lembrar que a linguagem C foi desenvolvida a partir da necessidade de se escrever programas que utilizassem recursos próprios da linguagem de máquina de uma forma mais simples e portável que o Assembler.
Linguagem C é case sensitive, ou seja, diferencia letras maiúsculas de minúsculas.
As inúmeras razões para a escolha da linguagem C como a predileta para os desenvolvedores “profissionais”. As características da Linguagem C servirão para mostrar o porquê de sua ampla utilização.
Portabilidade entre máquinas e sistemas operacionais. Dados compostos em forma estruturada. Programas Estruturados. Total interação com o Sistema Operacional. Código compacto e rápido, quando comparado ao código de outras linguagens de complexidade análoga.
Um programa em C consiste em uma ou várias “funções”. Vamos começar pelo menor programa possível em C:
main ( ) { }
Estrutura de Dados
Desta forma a orientação que adotaremos neste início do curso se deterá mais na compreensão geral do programa, do que a análise detalhada de cada comando ou função utilizada. De fato, apresentaremos alguns comandos fundamentais para a escrita de programas básicos e apenas nos utilizaremos sua sintaxe mais elementar (posteriormente estudaremos cada um deles mais detidamente), para construirmos os primeiros programas do curso.
Exemplo 1: Programa mostra a idade. /* Exemplo Idade */ #include <stdio.h> int main(int argc, char *argv[]) { int idade; idade = 40; printf("Sua idade e' %d anos. \n", idade); }
Toda a diretiva, em C, começa com o símbolo # no início da linha. A diretiva #include inclui o conteúdo de outro arquivo dentro do programa atual, ou seja, a linha que contêm a diretiva é substituída pelo conteúdo do arquivo especificado.
Sintaxe: #include
O primeiro caso é o mais utilizado. Ele serve para incluir alguns arquivos que contêm declaração das funções da biblioteca padrão, entre outras coisas. Estes arquivos,
Estrutura de Dados
normalmente, possuem a extensão .h e se encontram em algum diretório pré-definido pelo compilador (/usr/include no Linux; c:\dev- -c++\include no Windows com o Dev-C++). Sempre que o programa utilizar alguma função da biblioteca-padrão deve ser incluído o arquivo correspondente. A tabela a seguir apresenta alguns dos principais. h da linguagem C:
Arquivo Descrição stdio.h Funções de entrada e saída (I/O) string.h Funções de tratamento de strings math.h Funções matemáticas ctype.h Funções de teste e tratamento de caracteres stdlib.h Funções de uso genérico
A segunda forma, onde o nome do arquivo aparece entre aspas duplas, serve normalmente para incluir algum arquivo que tenha sido criado pelo próprio programador ou por terceiros e que se encontre no diretório atual, ou seja, no mesmo diretório do programa que está sendo compilado.
As instruções de entrada e saída são comandos quase que obrigatórios em qualquer programa na linguagem C. Na maioria dos programas em C, o usuário necessita entrar com algumas informações e também saber o resultado de algum processamento. Descreve-se a seguir os comandos básicos da linguagem C.
O objetivo de escrevermos programas é em última análise, a obtenção de resultados (Saídas) depois da elaboração de cálculos ou pesquisas (Processamento) através do fornecimento de um conjunto de dados ou informações conhecidas (Entradas).
Estrutura de Dados
Uma das mais importantes e poderosas instruções, servirá basicamente para promover leitura de dados (tipados) via teclado. Sua forma geral será: scanf(“string de controle”, lista de argumentos); Posteriormente ao vermos sua sintaxe completa, abordaremos os recursos mais poderosos da
%c - leitura de caractere; %d - leitura de números inteiros; %f - leitura de números reais; %s - leitura de caracteres.
A lista de argumentos deve conter exatamente o mesmo número de argumentos quantos forem os códigos de formatação na
Exemplo: Programa para ler e mostrar uma idade.
/* Exemplo Lê e Mostra Idade / #include <stdio.h> #include <conio.h> main ( ) { int idade; char nome[30]; printf("Digite sua Idade: "); scanf("%d",&idade); printf("Seu Nome: "); scanf("%s",nome); / Strings não utilizar '&' na leitura */ printf("%s sua idade e' %d anos. \n", nome, idade); }
Estrutura de Dados
As funções malloc() e free() permitem que utilizemos a área de memória livre para criar nossas variáveis. As variáveis serão criadas em tempo de execução.
A função malloc() aloca memória e tem esse protótipo: ponteiro = malloc(numero_de_bytes);
int *p; p = malloc(10000);
A função free() desaloca memória e tem esse protótipo:
free(ponteiro);
No momento dispomos de conhecimento para elaboração de programas básicos para construção de pequenos programas, pois conhecemos instruções de entrada de dados (scanf) e de saída (printf). Veremos a seguir Tipos de Dados da linguagem C, variáveis, operadores, e demais instruções básicas. Devemos procurar compreender a utilidade das declarações que serão exibidas a seguir, relacionando estes recursos com os exemplos e exercícios vistos anteriormente. Semelhante ao BASIC, Pascal e COBOL, a linguagem C necessita que todas as variáveis tenham seus tipos definidos. C aceita tipos básicos (caractere, inteiro, ponto flutuante, dupla precisão e sem valor) e modificadores (sinal, sem sinal, longo e curto) que podem alterar os tipos básicos.
Estrutura de Dados
Todas as variáveis devem ser declaradas desta forma: "tipo nome_de_variaveis;"
Exemplos:
int i,j,l; short int si; double balanco, consolidacao; char nome[30];
Basicamente, as variáveis podem ser declaradas fora das funções (globais) que valem para todas as funções do programa. Podem ser declaradas dentro de uma função (locais) sendo desconhecida no restante do programa. Além disso podem ser usadas para passagem de valores entre funções (parâmetros).
Em C podemos criar uma variável e logo em seguida utilizarmos o operador de atribuição para inicializarmos o valor de uma variável. Este processo denomina-se inicialização de variáveis. Vejamos abaixo como fazemos tal procedimento.
int i=0; double x=10.5;
// Exemplo: Criando três variáveis e inicializando-as em tempo de criação. int main ( ) { int evento = 5; char corrida = 'A'; float tempo = 27.25; printf ("O melhor tempo da eliminatória %c" ,corrida); printf (" \n do evento %d foi %f", evento, tempo); }
Estrutura de Dados
A escolha de nomes de variáveis em C pode conter quantos caracteres quiser, sendo o primeiro caractere obrigatoriamente uma letra ou o caractere sublinhado. Outra característica marcante em C, é que os nomes de variáveis podem ser criadas com nomes iguais, desde que contenham letras maiúsculas ou minúsculas, para diferenciá-las. É isso mesmo, C faz distinção entre letras maiúsculas e minúsculas.
#include <stdio.h> int main() { int valor = 1; double Valor = 2.5; printf ("Valor inteiro %d" , valor); printf ("\nValor ponto flutuante %f", Valor); } Observem que as variáveis possuem os mesmos nomes, só que a primeiro é denominada valor escrita em minúsculo e a segunda denominada Valor, sendo o primeiro caractere escrito em maiúscula.
C é uma das linguagens com maior número de operadores, devido possuir todos os operadores comuns de uma linguagem de alto nível, porém também possuindo os operadores mais usuais a linguagens de baixo nível. Para fins didáticos, dividiremos os operadores em aritméticos, lógicos e de bits. No momento abordaremos apenas as duas primeiras classes.
Operadores aritméticos
Os operadores aritméticos são utilizados para efetuar as operações matemáticas básicas como adição, multiplicação, divisão, resto de divisão inteira, subtração o menos unário,