Linguagem C
86 pág.

Linguagem C


DisciplinaAlgoritmos e Estrutura de Dados I706 materiais7.915 seguidores
Pré-visualização18 páginas
sintática, ou seja, os dados podem ser 
descritos através de representações formais; 
\u2022 Informações são abstrações que não podem ser formalizadas através de uma teoria 
matemática ou lógica, ou seja, possui uma carga semântica que representa algo para 
alguém; 
\u2022 Conhecimento é uma abstração pessoal de algum fato experimentado ou vivenciado por 
alguém. É a vivência do objeto do conhecimento e não uma interpretação pessoal. 
Dado um problema computacional, o programador deve possuir o conhecimento do 
assunto em questão, dominar a sintaxe (dados) da linguagem de programação para elaborar a 
melhor semântica (informação) que represente no mundo computacional o conhecimento aplicado 
para a solução do problema, ou seja, programar é a arte de elaborar soluções computacionais 
eficazes, eficientes e elegantes. 
 
1.2 Lógica de Programação 
Todos os dias tomamos decisões das mais variadas possíveis. Muitas destas decisões 
são resultado de um conjunto de ações que visam um resultado almejado. A lógica faz parte de 
 8
nossas decisões. Entende-se por lógico o que não permite questionamento, o que é coerente, o que é 
óbvio e certo. A lógica de programação em processamento de dados é a forma pela qual se 
representa em uma linguagem, ou símbolos que expressam essa linguagem, instruções que são 
executados por um computador. 
A lógica de programação é diretamente influenciada pela forma como raciocinamos, ou 
seja, dado um problema de processamento de dados os passos realizados para a análise podem 
deve-se realizar uma análise seguindo os seguintes passos: 
a) Entender o problema proposto; 
b) Definir os objetivos a serem alcançados; 
c) Verificar todos os dados disponíveis para resolvê-lo; 
d) Estabelecer uma seqüência de ações para resolução do problema; 
e) Dividir o problema em partes menores, se necessário; 
f) Rever os passos anteriores caso o objetivo não seja atingido. 
 
1.3 Algoritmos e Estrutura de Dados 
Um computador é uma máquina que manipula dados. Segundo a teoria da informação: 
 
\u201c...a informação é a medida da redução da incerteza sobre um determinado estado de coisas por 
intermédio de uma mensagem. Neste sentido, a informação não deve ser confundida com o significado e 
apresenta-se como função direta do grau de originalidade, imprevisibilidade ou valor-surpresa da 
mensagem, sendo quantificada em bits de informação...\u201d 
 
A unidade básica que representa a informação é o bit, cujo valor compreende um entre 
duas possibilidades mutuamente exclusivas. Um bit é uma contração das palavras binary digit ou 
dígitos binários. Os dígitos binários 0 e 1 são usados para representar os dois possíveis estados de 
determinado bit. 
Um programa processa dados, isto é, entra-se com os dados no programa que os 
processa e, disponibiliza a informação processada. Um programa é constituído de algoritmos e 
estrutura de dados, ou seja, a estrutura de dados recebe as informações e o algoritmo processa-os. 
As estruturas de dados são organizações conceituais de informações, isso é, organizam 
as informações que representam uma situação real. Uma estrutura de dados permite apresentar uma 
forma mais compreensível de se observar as informações, oferecendo, assim, um nível de abstração 
na solução de problemas, porém, de acordo com a forma da organização, pode comprometer a 
eficiência do algoritmo que manipula essa informação. 
Um algoritmo é descrito na literatura como: 
 9
 
\u201c ...uma série de passos organizados que descrevem um processo que se deseja seguir para dar solução a 
um problema específico... \u201d 
 
considerando-se que: 
 
\u201c ...é uma seqüência finita de instruções, cada uma das quais possuem um significado claro e pode ser 
executada com uma quantidade finita de esforço ao longo de um tempo também finito... \u201d 
 
Desta foram, defini-se que os algoritmos são instruções que descrevem um padrão de 
comportamento expresso em termos de um conjunto finito de ações, ou seja, é um conjunto 
seqüencial de ações executáveis ao longo de um tempo finito para obtenção de uma solução para 
um determinado tipo de problema. 
 
1.4 Representação da Lógica 
O algoritmo é a representação da resolução lógica de um problema de processamento de 
dados. Considerando-se as definições apresentadas anteriormente, um algoritmo é um conjunto 
finito instruções seqüenciais, executados num determinado período de tempo, que atinge um 
objetivo pré-estabelecido. 
Por exemplo, um encontro de amigos na residência do casal Leila e Francisco. Sendo 
anfitrião do evento, o casal está preparando café para servir aos convidados. 
As seguintes perguntas devem ser respondidas: 
a) Qual é o problema? 
b) Qual é o objetivo? 
c) Como atingir o objetivo? 
O problema é servir o café aos convidados, mas para isso é preciso do café, então o 
objetivo principal é fazer o café. Então, determina-se os passos seqüenciais para fazer o café: 
Encher água na chaleira; 
Colocar a chaleira para ferver; 
Preparar porta-filtro com filtro sobre o bule; 
Colocar café em pó no filtro; 
Se a água ferver, acrescentar aos poucos a água no filtro; 
Aguardar o processo de coar; 
Adoçar o café. 
Seguindo os passos apresentados, certamente o objetivo será alcançado. Entretanto, 
observando-se a seqüência proposta, é possível prever passos essenciais que podem comprometer a 
resolução do problema. Por exemplo: 
1. Encher água na chaleira; 
2. Colocar a chaleira para ferver; 
 10
3. Enquanto a chaleira está no fogo: 
.Preparar porta-filtro com filtro sobre o bule; 
.Se houver café em pó: 
.Colocar café em pó no filtro; 
.Do contrário: 
Desligue o fogo; 
Providenciar o café em pó; 
Se não houver café em pó: 
Encerrar o preparo do café; 
Do contrário: 
Voltar para o item 1.; 
4. Se a água ferver, acrescentar aos poucos a água no filtro; 
5. Aguardar o processo de coar; 
6. Adoçar o café. 
Definido a seqüência de passos, determina-se o que é preciso para executar a seqüência. 
Desta forma, tem-se: 
Pó de café, água, chaleira, fogão, açúcar, porta-filtro, filtro e bule 
Finalmente, com os dados de entrada e a execução da seqüência, o resultado é o café 
pronto. Desta descrição é o algoritmo \u201cfazer café\u201d. Um algoritmo é escrito utilizando uma 
linguagem de programação ou por meio de diagrama de fluxo, diagrama de Chapin ou português 
estruturado. 
 
1.4.1 Diagrama de Fluxo 
Um diagrama de fluxo é uma representação gráfica de um algoritmo, ou seja, é 
realizado um detalhamento dos passos lógicos de um determinado processamento de forma gráfica. 
Os símbolos para a representação gráfica são padronizados pela ANSI (figura 1.1). A figura 1.2 
apresenta um exemplo de um programa. 
 
 
 
 
 
 
 
 
 
 
 
Figura 1.1 - Principais formas geométricas usadas em diagrama de fluxo. 
 
 
 
Indica início ou final do 
diagrama de fluxo 
Operação de atribuição e 
chamada ou retorno de 
subalgoritmo 
Operação de saída de dados 
em vídeo 
Decisão Arco de fluxo 
de dados Conector de fluxo Operação de entrada de dados
Conectores de páginas
 11
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 1.2 - Exemplo de um diagrama de fluxo. 
 
 
1.4.2 Diagrama de Chappin ou Nassi-Schneiderman (NS) 
O diagrama de Chapin (Nassi-Schneiderman) é um diagrama em que se retiram-se os 
arcos, apresentando-se uma visão hierárquica e estruturada da lógica do programa. A grande 
vantagem de usar este tipo de diagrama é a representação das estruturas que tem um ponto de 
entrada e um ponto de saída e são compostas pelas estruturas básicas de controle de seqüência, 
seleção e repartição. Enquanto é difícil mostrar a recursividade no diagrama de fluxo, torna-se mais 
simples mostrá-lo com o diagrama de Chapin, bem como codificá-lo futuramente na conversão de 
código português estruturado ou pseudocódigos. A figura 1.3 apresenta os diagramas de Chapin. 
 
 
 
 
 
 
 
 
 
Figura 1.3 - Os diagramas de Chapin (Nassi-Schneiderman). 
 
<Comando> 
N S 
<?>
<Condição>