Linguagem C
86 pág.

Linguagem C


DisciplinaAlgoritmos e Estrutura de Dados I682 materiais7.928 seguidores
Pré-visualização18 páginas
<Condição>
Seqüência 
Seleção 
Interação 
<?>
1 2 3 4 
Início 
M = (N1 + N2)/2 
M>=6 
Fim 
S 
N
Leia N1 e 
N2
Imprima 
\u201cReprovado\u201d 
Imprima 
\u201cAprovado\u201d 
 12
A figura 1.4 apresenta um exemplo do tipo de diagrama de Chapin para o algoritmo de 
cálculo da média de um aluno. 
 
 
 
 
 
 
 
 
Figura 1.4 - Exemplo de um diagrama Chapin (Nassi-Schneiderman). 
 
1.4.3 Português Estruturado 
Esta forma de representação de algoritmos, também conhecida como \u201cportugol\u201d ou 
pseudo-código, é bastante rica em detalhes e, por assemelhar-se bastante à forma em que os 
programas são escritos, encontra muita aceitação. De fato, esta representação é suficientemente 
geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de 
programação específica seja praticamente direta. 
A representação de um algoritmo na forma de pseudo-código é a seguinte: 
Algoritmo <nome_do_algoritmo> 
<declaração_de_variáveis> 
<subalgoritmos> 
Início 
<corpo_do_algoritmo> 
Fim. 
Onde: 
9 Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de 
pseudocódigo. 
9 <nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distinguí-
lo dos demais. 
9 <declaração_de_variáveis> consiste em uma porção opcional onde são declaradas as variáveis 
globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. 
9 <subalgoritmos> consiste de uma porção opcional do pseudocódigo onde são definidos os 
subalgoritmos. 
9 Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto de 
instruções do corpo do algoritmo. 
A figura 1.5 apresenta um exemplo utilizando pseudo-código. 
Início 
Leia N1, N2 
Média = (N1+N2)/2 
Média >=7? 
Escreva 
\u201cAprovado\u201d 
Escreva 
\u201cAprovado\u201d 
Fim 
S N
 13
 
 
 
 
 
 
 
 
 
Figura 1.5 - Exemplo de um programa em pseudo-código. 
 
1.5 Linguagem de Programação 
Um programa de computador é um conjunto instruções que representam um algoritmo 
para a resolução de algum problema. Estas instruções são escritas através de um conjunto de 
códigos (símbolos e palavras). Este conjunto de códigos possui regras de estruturação lógica e 
sintática própria. Dizemos que este conjunto de símbolos e regras formam uma linguagem de 
programação. Podemos dividir, genericamente, as linguagens de programação em dois grandes 
grupos: as linguagens de baixo nível e as de alto nível. 
Linguagens de baixo nível são linguagens voltadas para a máquina, isto é, são escritas 
usando as instruções do microprocessador do computador. São genericamente chamadas de 
linguagens Assembly. A principal vantagem é que os programas são executados com maior 
velocidade de processamento ocupando menos espaço na memória. A desvantagem é que em geral, 
os programas em Assembly tem pouca portabilidade, isto é, um código gerado para um tipo de 
processador não serve para outro. Além disso, os códigos Assembly não são estruturados, tornando 
a programação mais difícil. 
Linguagens de alto nível são linguagens voltadas para o ser humano. Em geral utilizam 
sintaxe estruturada tornando seu código mais legível. Necessitam de compiladores ou 
interpretadores para gerar instruções do microprocessador. Interpretadores fazem a interpretação de 
cada instrução do programa fonte executando-a dentro de um ambiente de programação, Basic e 
AutoLISP por exemplo. Compiladores fazem a tradução de todas as instruções do programa fonte 
gerando um programa executável. Estes programas executáveis (*.exe) podem ser executados 
fora dos ambientes de programação. Um programa executável contém uma seqüência de instruções 
que podem ser executados pelo processador. Neste formato executável, as instruções são bem 
primitivas, basicamente soma e subtração e funções de leitura e armazenamento. A linguagem de 
Algoritmo Média 
Declare N1, N2, Média Real 
Início 
Leia N1, N2 
Média \u2190 (N1+N2)/2 
Se Média >=7 
 Então 
 Escreva \u201cAprovado\u201d 
 Do contrário 
 Escreva \u201cReprovado\u201d 
Fim 
 14
máquina é complexa para maioria das pessoas, dessa forma usamos uma linguagem de um nível 
maior para escrever nossos programas. 
As linguagens de alto nível podem se distinguir quanto a sua aplicação em genéricas 
como C, Pascal e Basic ou específicas como Fortran (cálculo matemático), GPSS (simulação), LISP 
(inteligência artificial) ou CLIPPER (banco de dados). A principal vantagem é que os programas 
podem ser compiladas ou interpretadas tornando-os portáveis, isto é, podem ser executados em 
varias plataformas com pouquíssimas modificações. Em geral, a programação torna-se mais fácil 
por causa do maior ou menor grau de estruturação de suas linguagens. A desvantagem é que em 
geral, as rotinas geradas (em linguagem de maquina) são mais genéricas e portanto mais complexas 
e por isso são mais lentas e ocupam mais memória. 
 
1.6 Compiladores e Interpretadores 
Os termos compiladores e interpretadores referem-se à maneira como um programa é 
executado. 
Um interpretador lê o código fonte do programa linha por vez e executando a instrução 
específica contida nesta linha. Desta forma, a execução do programa depende da presença do 
interpretador na máquina. 
Um compilador lê o programa inteiro e converte-o em um código objeto (código binário 
ou código de máquina), que é uma tradução do código fonte do programa em uma forma que o 
computador possa executar diretamente. 
 
1.7 Paradigma de Programação: Programação Estruturada 
Os recursos computacionais são compostos por hardware e software. As inovações em 
hardware permitem desenvolver softwares cada vez mais sofisticados, permitindo-se elevar o nível 
de abstração para o desenvolvimento de soluções mais eficientes. Softwares sofisticados significam 
grandes quantidades de linhas de código, acarretando como conseqüência um árduo trabalho na 
manutenção do código. 
Dentro deste contexto, surgiu-se no início dos anos 70 o conceito de modularização de 
código que permitiu desenvolver o paradigma de programação estruturada. A linguagem estruturada 
tem como característica principal a modularização do código e dos dados, isto é, possibilita a 
criação de sub-rotinas que empregam variáveis locais. Os módulos ou sub-rotinas se interligam 
através de três mecanismos básicos: 
 15
9 Seqüência: Implementa os passos de processamento necessários para descrever qualquer 
programa; 
9 Seleção: Especifica a possibilidade de selecionar o fluxo de execução do processamento 
baseado em ocorrências lógicas; 
9 Iteração: Permite a execução repetitiva de segmentos do programa. 
Em linguagem C, o principal componente estrutural é a função, isto é, são sub-rotinas 
ou blocos de construção em que são realizadas as atividades pré-estabelecidas. A função tem como 
objetivo conceitual realizar essas atividades adequadamente sem criar efeitos inesperados em outras 
partes do programa. Outra forma de estruturar e modularizar o código em linguagem C é pelo uso 
de blocos de código. Um bloco de código é um grupo de comandos que é tratado como uma 
unidade. 
Portanto, a modularização do código permite que os programas possam: 
9 Compartilhar seções de códigos; 
9 Realizar facilmente manutenções no código; 
9 Facilitar a compreensão de programas através do número restrito sub-rotinas. 
 
1.8 Tipos de Dados 
O trabalho realizado por um computador é basicamente manipular os dados contidos em 
sua memória. Estes dados podem ser classificados em: 
9 Instruções, que comandam o funcionamento da máquina e determinam a maneira como devem 
ser tratados os dados. 
9 Dados propriamente ditos, que correspondem à porção das informações a serem processadas 
pelo computador. 
Os tipos de dados podem ser classificados em: 
9 Tipos Inteiros; 
9 Tipos Reais; 
9 Tipos Caracteres; 
9 Tipos Lógicos. 
 
1.8.1 Tipo Inteiro 
São caracterizados como tipos inteiros, os dados numéricos positivos ou negativos. 
Excluindo-se destes qualquer número