Logo Passei Direto
Buscar

01 - Conceitos Preliminares

User badge image

Enviado por Paulo PAULEIRA em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Conceitos Preliminares 
 
1.1 - Introdução 
 
O computador tornou-se uma poderosa ferramenta, presente nas mais variadas áreas de atividade 
humana, devido fundamentalmente ao fato de o mesmo ser uma máquina programável. Essa 
característica faz dele uma máquina que pode ser usada na determinação da solução dos mais variados 
tipos de problemas. 
 
 Basicamente, um computador consiste em uma máquina que executa ordens. Assim, para que 
ele execute a solução de um problema, é necessário que execute um programa, o qual fará com que se 
obtenha uma solução. Como uma definição preliminar, pode-se dizer que programar um computador 
consiste na elaboração de um conjunto de instruções, de forma que, ao serem executadas, o 
computador obtenha a solução de um determinado problema. 
 
 O nosso objetivo neste livro é apresentar as características e conceitos envolvidos na escrita de 
um programa de computador. Afinal, se um programa de computador consiste em um conjunto de 
instruções, como são essas instruções? Que características apresentam? Que tipo de instrução um 
computador pode executar? 
 
 Mais do responder a essas perguntas, procuraremos, no decorrer desse livro, apresentar os 
conceitos envolvidos na modelagem da resolução de um problema em computador. Essa modelagem 
pode ser feita a partir de vários paradigmas. Neste livro, abordaremos o paradigma "Programação 
Estruturada". De acordo com esse paradigma, a escrita de um programa, para a resolução de um 
determinado problema, está baseada na divisão do problema em problemas menores. Para cada 
problema menor, identifica-se quais os dados que esse problema apresenta e a que resultados se quer 
chegar. Os dados que o problema apresenta são denominados Entradas e os resultados desejados são 
denominados Saídas. Definidas as entradas e saídas, deve-se determinar que tipo de processamento 
deve executado para que, a partir das entradas, obtenha-se as saídas. 
 
Assim, a escrita de um programa envolve todo um processo de análise do problema, onde a 
divisão de um problema maior em problemas menores constitui-se em característica fundamental. 
Como inicialmente estaremos apresentando e discutindo problemas bastante simples, essa 
característica não será levada em consideração nos primeiros capítulos. 
 
1.2 Um Primeiro Exemplo 
 
Para que se tenha uma visão mais clara do que significa programar um computador, vamos analisar um 
pequeno problema e escrever para este uma primeira versão de um programa. Obviamente que, por 
menor que seja o problema, a construção de um programa que resolva esse problema envolve um 
conjunto razoável de informações. Por questões didáticas, neste primeiro exemplo, alguns conceitos 
não serão discutidos. 
 
Suponha que o nosso problema seja escrever um programa que faça com que o computador resolva o 
seguinte problema: 
 
"Dadas a base e a altura de um triângulo, determinar a sua área". 
 
Pelo enunciado do problema, podemos concluir que este apresenta como dados (entradas) os 
valores da base e da altura, os quais são necessários para a resolução do problema. Também podemos 
concluir que a solução do problema consiste em se encontrar o valor da área do triângulo. Temos, 
então, como saída, o valor da área. 
 
Para que possamos escrever uma primeira versão de programa para esse problema, é 
necessário que saibamos alguns conceitos sobre como funciona um computador. Afinal, que tipo de 
instruções um computador pode executar? Como são armazenados os valores que processa? Que 
conhecimentos tem o computador? 
 
Dados os objetivos deste livro, vamos visualizar um computador como sendo uma máquina 
cega, que conhece um conjunto limitado de instruções e só as executa se solicitado. Vamos considerar, 
por enquanto, que um computador consiste em uma máquina que sabe: 
 Ler; 
 Escrever; 
 Efetuar operações aritm~éticas básicas, tais como: adição, subtração, multiplicação e divisão. 
 
A maioria das instruções que o computador executa está, de alguma forma, associada ao 
processo de armazenamento de valores na sua memória ou ao processo de cópia de valores de sua 
memória. Assim, se quisermos que o computador saiba qual o valor da altura do triângulo, que, 
conforme vimos, é necessário para o cálculo da área, devemos instruí-lo de forma que leia um valor, a 
ser fornecido pelo usuário, e que esse valor seja armazenado em algum local de sua memória. O 
computador só sabe ou conhece aqueles valores que estão armazenados em sua memória. 
 
Fisicamente, a memória de um computador consiste em um conjunto de elementos 
denominados bytes, cujo estudo foge ao escopo deste livro. Entretanto, para efeito de construção de 
um programa, podemos considerar a memória como sendo um conjunto de posições, conforme 
apresentado na tabela seguinte, onde cada posição recebe uma identificação (um nome) e armazena 
um determinado valor. 
 
Base Idade X1 Nota 
8.0 25 2 8.5 
Aluno A12 Area Altura 
João X8tdhjf3 16.0 4.0 
 
 
Cada posição de memória sempre armazena um valor. Se o computador executar uma instrução 
fazendo com que um novo valor seja armazenado em determinada posição, então o valor antigo será 
destruído. Devemos considerar que, em uma posição, sempre se tem algum valor armazenado, mesmo 
que nenhum valor tenha sido explicitamente lá colocado. Se nenhum valor foi%èxplicitamente ar-
mazenado em determinada posição, considera-se que esta possui um "lixo". É fundamental que o leitor 
entenda o funcionamento da memória, pois a maioria das instruções que o computador executa tem 
por base a sua memória. 
 
Dadas essas considerações, podemos escrever o programa faz com que o computador calcule a 
área de um triângulo, como segue: 
 
Inicio 
Leia Base 
Leia Altura 
Area  Base*Altura/2 
Escreva Area 
Fim 
Veja que nosso programa usou as posições de memória Base, Altura e Area. O nome de uma 
posição de memória é definido pelo programador. Por questão de legibilidade, é sempre recomendável 
que os nomes das posições de memória sejam significativos. O nome de uma posição de memória é 
significativo quando expressa de alguma forma qual o conteúdo da posição. Assim, por exemplo, se 
quisermos que o computador armazene o valor da idade de alguém, é conveniente que a posição que 
armazenará esse valor seja identificada por Idade. 
 
Seja a instrução: 
 
Leia Base 
 
A execução dessa instrução faz com que o computador fique aguardando que o usuário digite 
um valor. O valor digitado é então lido pelo computador e, conforme determina a instrução, é armaze -
nado na posição de memória Base. Todo comando Leia deve especificar pelo menos uma posição de 
memória. O valor lido será armazenado na posição de memória especificada pelo comando Leia. 
 
Note que, antes da execução da instrução Leia Base, algum valor existia na posição de memória 
Base. Com a execução da instrução, o valor fornecido pelo usuário será armazenado na posição Base e o 
antigo valor lá existente será destruído. Lembre-se: mesmo que o programa não tenha mandado 
armazenar nenhum valor em uma posição, algum valor a posição conterá. Conforme já foi colocado, 
quando nenhuma instrução foi executada de forma a armazenar um valor em determinada posição, diz-
se que a posição contém um "lixo". 
 
Seja a instrução: 
 
Area  Base*Altura/2 
 
A execução dessa instrução faz com que o computador copie os valores contidos nas posições 
de memória Base e Altura, multiplique um pelo outro e divida o resultado por 2. O resultado final 
obtido, conforme determina a instrução, deve ser armazenado na posição de memória Area. Veja que 
usamos os caracteres * e / para representar as operações de multiplicação e divisão, respectivamente. 
Já o símbolo F- é usado para indicar que o resultado da expressão à direita, deve ser armazenado na 
posição de memória especificada à esquerda. 
 
Com a execução
da instrução 
 
Escreva Area 
 
o valor que estiver armazenado na posição de memória Area será copiado e mostrado na tela. 
 
1.3. Definição da Linguagem 
 
Conforme pode ser observado na seção anterior, para escrever nossa primeira versão de um programa, 
usamos uma determinada linguagem. Uma linguagem pode ser definida como um conjunto de símbolos 
e regras utilizados em um processo de comunicação. Em termos de programação de computadores, 
várias são as linguagens disponíveis, cada qual com suas características. 
 
Nosso objetivo neste livro é apresentar ao leitor, todos os conceitos envolvidos na construção 
de um programa de computador, sem, contudo, entrar em aspectos relativos a uma determinada lin-
guagem de programação. 
 
Assim, estaremos usando durante todo o livro uma linguagem a qual denominaremos de 
Pseudocódigo. Esse pseudocódigo, assim chamado por não ser uma linguagem de programação 
propriamente dita, tem por base o português e suas características básicas procuram seguir o 
especificado em linguagens de programação tradicionais. Mais especificamente, esse pseudocódigo será 
apresentado de uma forma bastante similar à linguagem de programação Pascal. Considerando que o 
pseudocódigo não constitui-se em uma linguagem de programação disponível em computador, o 
conjunto de instruções escrito em pseudocódigo será denominado de algoritmo, em vez de programa. 
 
Ao usarmos um pseudocódigo, em vez de uma linguagem de programação, não necessitamos 
nos preocupar com detalhes específicos da linguagem. Isto possibilita que o projetista se concentre fun-
damentalmente na montagem lógica da resolução do problema. 
 
1.4 Conceito de Algoritmo 
 
Podemos definir algoritmo como sendo uma seqüência finita e lógica de instruções executáveis, 
especificadas em uma determinada linguagem, que mostram como resolver determinado problema. 
 
Veja que essa definição não está presa a utilização ou não do computador. Qualquer seqüência 
de instruções que mostra como resolver um problema constitui-se em um algoritmo. Uma receita de 
bolo é um bom exemplo de algoritmo. Uma receita de bolo constituise em uma seqüência finita e lógica 
de instruções, as quais mostram o que uma cozinheira deve fazer, e em que ordem, para obter um bolo. 
Veja que a receita especifica todos os passos em uma seqüência onde a ordem das instruções ou passos 
é fundamental. 
 
Um algoritmo deve especificar quais são as instruções que devem ser executadas e em que 
ordem. Se o problema for, por exemplo, calcular a média aritmética de três valores, o seguinte 
algoritmo poderia ser usado por alguém que fosse resolver este problema: 
 
- Conhecer os três valores; 
- Determinar a soma dos três valores; 
- Dividir a soma por 3, encontrando a média; - Mostrar a média encontrada. 
 
Nosso objetivo neste livro é apresentar e discutir os conceitos relativos à construção de 
algoritmos para execução em computador. Conforme já colocamos anteriormente, estaremos utilizando 
um pseudocódigo, que tem por base palavras do português e sua estrutura é bem similar à linguagem 
de programação Pascal. Assim, os algoritmos que estaremos discutindo terão todas as características de 
um programa, exceto a linguagem. 
 
Para o problema do cálculo da média dos três valores, pode-se escrever o seguinte algoritmo: 
 
Inicio 
 Leia Valor_a (1) 
Leia Valor_b (2) 
Leia Valor_c (3) 
Soma  Valor_a + Valor_b + Valor_c (4) 
Media  Soma/3 (5) 
Escreva Media (6) 
Fim 
 
 
A execução das instruções (1), (2) e (3) faz com que o computador leia os valores dos quais se 
deseja determinar a média. Veja que, de acordo com as instruções, o primeiro valor será lido e arma-
zenado na posição de memória identificada com o nome Valor a; o segundo valor será armazenado na 
posição Valor b; e o terceiro, na posição Valor c. A execução da instrução (4), faz com que sejam 
copiados e somados os valores que estão armazenados nas posições Valor a, Valor -b e Valor c. O 
resultado obtido, de acordo com a instrução, será armazenado na posição de memória Soma. A 
execução da instrução (5) faz com que o valor armazenado em Soma seja dividido por 3 e o resultado 
seja armazenado na posição Media. A instrução (6) faz com que seja mostrado o valor armazenado na 
posição Media. Todos esses tipos de instruções serão apresentados em maiores detalhes no próximo 
capítulo. 
 
Pelos exemplos apresentados, podemos concluir que a construção de um algoritmo envolve 
todo um processo de análise do problema, com o objetivo de abstrair-se uma solução. Nessa análise, 
devese identificar claramente quais os dados que são necessários para a resolução do problema. Esses 
dados são denominados entradas. Também deve ficar claro a que resultados se quer chegar, ou seja, em 
que consiste a solução do problema. Aos resultados a que se quer chegar, denominamos saídas. 
Voltamos a lembrar, entretanto, que o princípio fundamental da programação estruturada consiste em 
considerar o problema a ser solucionado como sendo composto por subproblemas. Dividindo-se o 
problema maior em subproblemas menores, estes serão mais facilmente resolvidos. 
 
1.5 Exercícios Propostos 
 
1) Explique o que significa programar um computador. 
2) O que você entendeu por programação estruturada? 
3)Defina Algoritmo. 
4) Como pode ser visualizada a memória de um computador? 
5) Escreva um algoritmo para calcular a área de um círculo. Área do círculo = 3,1415 * Raio*Raio.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?