Você está na página 1de 17

Programao de

Computadores
Unidade I

Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por qualquer forma e/ou
quaisquer meios (eletrnico, incluindo fotocpia e gravao) ou arquivada em qualquer sistema ou banco de dados sem
permisso escrita da Universidade Paulista.
Plano de Ensino, Objetivos, Contedos Gerais

Programao de computadores

Plano de ensino

OBJETIVOS GERAIS

Desenvolver o raciocnio do aluno pela exposio de uma sequncia de solues de problemas


prticos em computador.

Habilitlo a enfrentar a formulao lgica de problemas com os quais ter de lidar em sua
vida profissional.

Dar nfase necessidade de clareza de raciocnio, planejamento prvio e exatido na aplicao do


mtodo escolhido.

Desenvolver questes que integram as demais disciplinas da matriz curricular.

OBJETIVOS ESPECFICOS

Habilitar o aluno a formular um mtodo para soluo de um problema numrico, detalhar essa
soluo na forma de um algoritmo vivel, apresentar esse algoritmo na forma de diagrama de
blocos, linguagem algortmica e, finalmente, codificado em uma linguagem estruturada.

Exercitar o aluno no teste e depurao de seus programas.

Encorajlo a desenvolver algoritmos prprios para alguns exercciosprogramas.

Promover a integrao das disciplinas.

CONTEDO PROGRAMTICO

Algoritmo: sequncia de instrues definidas e finitas para a resoluo de problemas.

Varivel: identificador e contedo.

Tipos de variveis: inteiro, real, caractere e lgico.

3
Unidade I

Operadores: DIV e MOD, operadores aritmticos e operadores lgicos (e, ou, no).

Programa:

Nome
Declarao de variveis
Incio
Comandos: leia, escreva, atribuies, desvios condicionais, estruturas de repetio etc.
Fim

Desvio condicional simples (comando IF)


Desvio condicional composto (comando IF...THEN...ELSE)
SE (condio) ENTO

{instrues 1};

SENO

{instrues 2};

FIM_SE;

Estruturas de Repetio ENQUANTO, REPITA e PARA (WHILE, REPEAT e FOR)

{iniciar varivel de controle};

ENQUANTO (condio for verdadeira) FAA

{instrues};

{atualizar varivel de controle};

FIM_ENQUANTO;

BIBLIOGRAFIA

BORATTI, I.; OLIVEIRA, A. Introduo Programao: algoritmos. Florianpolis: VisualBooks, 2004.

BUCKNALL, A. Algoritmos e Estruturas de Dados com Delphi. So Paulo: Berkeley, 2002.

CARBONI, I. Lgica de Programao. So Paulo: Thomson, 2003.

MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lgica para desenvolvimento de programao. 4. ed.


So Paulo: rica, 2004.
4
Programao de computadores

Unidade I
Introduo

Computadores

O computador pode ser conceituado como um dispositivo capaz de executar um conjunto de


operaes aritmticas e lgicas. O primeiro computador mecnico foi criado, em 1815, por Charles
Babbage, conhecido como o pai da computao. O ENIAC, de 1939, foi o primeiro computador eletrnico
a processar dados no formato digital e o UNIVAC, de 1951, foi o primeiro computador comercial.

Os computadores so constitudos, pelo menos, dos seguintes itens:

Processador.

Memria para armazenar o programa.

Um dispositivo de entrada (teclado, mouse, porta de ligao internet etc.).

Programas.

Dispositivo de sada (monitor, impressora, fax, porta de ligao internet etc.).

Os computadores tambm possuem um dispositivo de entrada para mudar o programa, introduzir


novos dados para serem processados ou controlar os processos correntes.

5
Unidade I

Na tabela a seguir esto mostrados alguns componentes do computador.

Componente Imagem Significado Funo

Mouse Dispositivo de entrada. Controle dos processos do computador.

Central Processing Unit (Unidade Central de


CPU Processador. Processamento).
Clculos e controles.

Instrues ao computador ou introduo de


Teclado Dispositivo de entrada. dados para processamento.

Memria Guarda programas e dados para


Armazenamento. processamento.

Monitor Dispositivo de sada. Mostra os resultados dos processos.

6
Programao de computadores

Componente Imagem Significado Funo

Impressora Dispositivo de sada. Imprime os resultados dos processos.

Modem Modulador-Demodulador. Comunicao com


Dispositivo de entrada/sada. outros computadores.

Placa de rede Comunicao com outros computadores por


Dispositivo de entrada/sada. meio de uma rede.

Disco rgido Armazenamento. Guarda dados e programas.

CD-ROM Dispositivo de entrada. Carrega programas ou dados na memria.

Placa de som Dispositivo de sada. Toca msica ou sons.

Scanner Dispositivo de entrada. Digitaliza imagens.

Nveis de linguagem

Comeamos com programas binrios Microassembler: a programao direta no processador.

No nvel seguinte, temos a Linguagem de Mquina, quase impossvel de ser lida pelos seres humanos.

Na sequncia, temos o Macroassembler. Nesse nvel, instrumos o processador para executar os


pequenos programas escritos em Microassembler.

Em seguida, temos as Linguagens de Programao. Muitas dessas linguagens foram inventadas


durante os anos das dcadas de 1960 e 1970. Em 1995, existiam cerca de 2500 linguagens de programao
diferentes. Exemplos: C, C++, BASIC, Pascal etc.

Finalmente, temos a Programao Orientada a Objeto.

7
Unidade I

Variveis, Constantes e Comando de Atribuio

VARIVEIS

As variveis so representadas por smbolos escolhidos pelo programador e guardam


valores e informao. Elas permitem que os programas efetuem clculos e guardem
os resultados obtidos. Voc pode pensar que a varivel uma espcie de caixa
que pode conter informao. Quando queremos saber essa informao, abrimos a
caixa. Em seguida, recolocamos a informao de volta na caixa e a deixamos l, at
necessitarmos novamente recorrer a ela. Para que possamos fazer identificaes, cada
uma das caixas tem de ter uma etiqueta com nome, ou seja, um identificador. Cada
caixa pode ter um tamanho prprio e guardar um tipo de informao (tamanho e tipo
de varivel).

As variveis podem guardar nmeros (inteiros ou reais), nomes, textos etc. Em Pascal, por exemplo,
os tipos mais importantes de variveis so os citados na tabela abaixo.

Tipo Tamanho
boolean 1 bit
byte 8 bits = 1 byte
integer 16 bits = 2 bytes
word 16 bits = 2 bytes
longint 32 bits = 4 bytes
real 48 bits = 6 bytes
double 64 bits = 8 bytes
extended 80 bits = 10 bytes
char 8 bits = 1 byte
string 256 bytes

Varivel do tipo booleana (boolean): usada para guardar e manipular informao do tipo true or
false (verdadeiro ou falso). Isto um bit de informao.

Varivel do tipo inteiro (integer): guarda nmeros inteiros. Usada, muitas vezes, para situaes de
contagens: nmero de peas produzidas em uma indstria, nmero de pessoas em uma amostra, nmero
de acessos a um site no perodo de 24 horas, nmero de dias teis em um ms etc. Byte e word guardam
apenas nmeros positivos, enquanto que integer e longint podem guardar nmeros positivos e negativos.

Varivel do tipo real (real, float): guarda nmeros com vrgulas flutuantes (por exemplo:
3,1415926535). Usada para situaes que necessitam de nmeros fracionrios: tempo para a produo
de um lote de mercadorias, comprimento de uma sala, raiz quadrada de 2, a altura de um prdio etc.
Nesse tipo, tambm temos as variveis double e extended.

Variveis dos tipos char e string: guardam textos. Char utilizado para caracteres simples,
enquanto que a string pode guardar at 255 caracteres.

8
Programao de computadores

Declarao de Variveis (VAR)

Na maioria das linguagens modernas de compilao, todas as variveis utilizadas tm de ser,


primeiramente, declaradas em um processo chamado de declarao de variveis. Essa declarao
significa reservar espao na memria e associar, a ele, um nome.

Em PASCAL, declaramos variveis com a instruo VAR, seguida pela(s) varivel(is) com seus tipos.
Isso deve ser feito antes do incio do programa, mas depois da declarao do nome do programa.

Vejamos um exemplo abaixo.

Em Pascal:

Program VarExample;
VAR i: integer;
a: real;
b: word;
begin
writeln(Como voc vai?);
end.

Em Portugus Estruturado (Portugol):

Programa VarExample;

Var
i: inteiro;
a: real;
b: texto;
inicio
escreva (Como voc vai?);
fim.

Se precisarmos definir mais variveis do mesmo tipo, podemos fazer isso com vrias instrues
separadas ou em apenas uma linha. Em qualquer caso, no devemos escrever VAR novamente.

Importante: a instruo VAR no atribui um valor varivel, apenas reserva espao para ela na
memria. Observao: em muitas linguagens de programao possvel atribuir um valor a uma varivel
no momento da declarao.

Comando de Atribuio

Podemos atribuir um valor inicial a uma varivel. Esse valor pode ser alterado durante a execuo do
programa. Dar um novo valor a uma varivel uma atribuio. Em Portugus Estruturado (ou Portugol),
9
Unidade I

a atribuio realizada com o smbolo de igual (=). Em PASCAL, isso feito com o seguinte operador:

No lado esquerdo do operador colocamos a varivel e, no lado direito, colocamos o novo valor ou
expresso que produzir o novo valor. Exemplos:

C := 5; (em Pascal) ou C=5; (em Portugus Estruturado)

f := 7*a; (em Pascal) ou f=7*a; (em Portugus Estruturado)

s := cos(t); (em Pascal) ou s=cos(t); (em Portugus Estruturado)

Importante: lembrese de usar o ponto e vrgula aps a finalizao do comando.

interessante fazermos uma comparao entre o smbolo matemtico de igual e o smbolo de


atribuio nas linguagens de programao (:= no PASCAL e = em Portugus Estruturado). Vejamos a
seguinte equao matemtica: t = t + 3.

Essa equao no possui soluo matemtica para t, pois no h um nmero real que seja igual a
ele mesmo somado com 3.

Em linguagens de programao, devemos ler a equao anterior como o novo valor de t o valor
antigo de t somado com 3 (ou seja, t recebe t mais 3).

Ou seja, inicialmente, o valor atribudo varivel t carregado a partir da memria; a seguir,


adicionase 3 a ele; e, finalmente, o resultado colocado de volta na memria. Isto fundamentalmente
diferente da equao matemtica citada.

Por essa razo, em PASCAL o smbolo :=, e no apenas =, foi considerado como o operador de
atribuio. Na maioria de outras linguagens de programao, inclusive em Portugus Estruturado, o
smbolo = usado como operador de atribuio.

Constantes

As constantes diferem das variveis por no poderem sofrer uma atribuio durante o decorrer de
um programa. Uma vez recebido um valor, ele no pode ser alterado. A vantagem que podemos definir
um valor num stio do programa e, a partir do momento que foi definido, pode ser utilizado assim que
seja necessrio em qualquer parte do programa.

A declarao das constantes feita de maneira similar s variveis, mas com a palavra CONST.
Vejamos um exemplo a seguir.

10
Programao de computadores

Em Pascal:

PROGRAM ConstExample;
VAR angle: real;
tan: real;
CONST PI = 3.1415926;
begin
angle := 45.0;
angle := PI*angle/180.0;
tan := Sin(angle)/Cos(angle);
end.

Em Portugus Estruturado:

Programa ConstExample;
Var angle: real;
tan: real;
CONST PI = 3.1415926;
inicio
angle = 45.0;
angle = PI*angle/180.0;
tan = Sin(angle)/C;
fim.

Exemplo

Vejamos, abaixo, a simulao de um exemplo de um programa que utiliza instrues de atribuio,


variveis e constantes. O lado direito mostra o valor das variveis depois da execuo de cada linha.

Valor de n1 Valor de n2
depois da execuo da linha depois da execuo da linha
PROGRAM Assign;
VAR n1: real;
n2: real;
CONST K = 6.1;
begin

n1 := 1;
n2 := K; 1.0

n1 := n1 + n2 + K; 1.0 6.1

end. 13.2 6.1

Observao 1. Podemos classificar, de forma mais resumida, as variveis e as constantes nos quatro
tipos bsicos mostrados no quadro a seguir (inteiro, real, caractere e lgico).

11
Unidade I

TIPO Descrio

Qualquer nmero inteiro, negativo, nulo ou positivo.


INTEIRO
Exemplos: 26, 12, 1, O, 12.
Qualquer nmero real, negativo, nulo ou positivo.
REAL
Exemplos: 13, 1, 0,25, O, 12, 8,653.
Qualquer conjunto de caracteres alfanumricos.
CARACTERE
Exemplos: Rodrigo, Apartamento 12,Nmero.

LGICO Falso ou Verdadeiro.

Uma varivel do tipo caractere ou string pode alocar at 255 posies de memria. Para definir
variveis do tipo STRING (Cadeia) com menos de 255 caracteres, inserir, aps STRING (Cadeia), o nmero
de caracteres desejados entre colchetes ( [ ] ).

Exemplo:

Programa Variavel_String
Var
Nome: CADEIA[65];
Inicio
<comandos>
Fim.

No exemplo anterior, o espao ocupado por uma varivel STRING (Cadeia) passa de 255 bytes para
somente 65 bytes.

Observao 2. Todo programa tem incio e fim.

Observao 3. Vimos que o smbolo representa o comando de atribuio.

Assim, quando escrevemos S N1 + N2 + N3, estamos pensando assim: a varivel identificada


como S est recebendo a soma dos valores atribudos s variveis identificadas por N1, N2 e N3.

Variveis, Constantes e Comando de Atribuio

Algoritmos, Aplicaes e Exemplos

ALGORITMOS

Algoritmo: procedimento definido que recebe um ou mais valores (dados de entrada) e gera um
ou mais valores (informaes de sada). O algoritmo apresenta a lgica de um problema, ou seja, a
sequncia de etapas para resolvlo.

12
Programao de computadores

Tomemos como exemplo a funo dada por y = 5 . x2

O dado de entrada o valor atribudo varivel x. A informao de sada o resultado obtido pela
varivel em y. Um algoritmo para este exemplo :

Passo 1: Entrada: a varivel x recebe um valor (tipo nmero real) ler o valor de x.

Passo 2: Elevar o valor atribudo a x ao quadrado, multiplicar o resultado por 5 e guardar o


resultado final na varivel y.

Passo 3: Sada: Escrever (imprimir) o valor y.

OBSERVAO: podemos formular diferentes algoritmos para resolver o mesmo problema.

Um algoritmo deve ser:

a) Finito (terminar aps um nmero finito de etapas).

b) Definido (cada etapa deve ser precisamente definida).

c) Efetivo (todas as operaes devem ser necessrias e suficientes).

Alm disso, deve apresentar zero ou mais entradas (dados fornecidos antes do algoritmo iniciar) e
uma ou mais sadas (informaes resultantes de processamentos).

Representao de um algoritmo:

a) Linguagem natural (passo a passo).

b) Fluxograma convencional (representao esquemtica).

c) Portugus estruturado (Pseudolinguagem).

13
Unidade I

EXEMPLO: DADOS DOIS NMEROS, CALCULAR O TRIPLO DA SOMA DOS NMEROS DADOS.
SE O VALOR OBTIDO FOR MAIOR OU IGUAL A 45, ESCREVER E EXIBIR O QUADRADO DA SOMA
DOS NMEROS. SENO, ESCREVER E EXIBIR A SOMA DOS QUADRADOS DOS NMEROS.

Programa Exemplo
Var
A, B, C, R: real;
Incio
Escreva (Entre com dois nmeros);
Leia (A,B);
C3* (A+B);
Se (C>=45) ento
R(A+B)^2;
Seno
RA^2 + B^2;
Fim_Se;
Escreva (O resultado , R);
Fim.

14
Programao de computadores

Simulaes de algoritmos, fluxogramas e programas

A situao do exemplo anterior constitui uma motivao para o estudo de algoritmos e programas,
bem como para a exemplificao de simulaes. Vejamos novamente o que foi solicitado:

Dados dois nmeros, calcular o triplo da soma dos nmeros dados. Se o valor obtido for
maior ou igual a 45, escrever e exibir o quadrado da soma dos nmeros. Seno, escrever e exibir
a soma dos quadrados dos nmeros.

Um fluxograma que expressou a situao descrita pode ser detalhado como segue abaixo.

As entradas (dois nmeros) foram representadas pelas variveis A e B.

O valor do triplo da soma dos nmeros dados acumulado na varivel C.

O desvio condicional verificado pela condio de valor acumulado na varivel C.

O resultado pode ser calculado como o quadrado da soma dos nmeros (se o valor acumulado
na varivel C for maior ou igual a 45) ou como a soma dos quadrados dos nmeros (se o valor
acumulado na varivel C for menor que 45).

O resultado acumulado na varivel R.

Exemplo: Escrever um algoritmo que leia o nmero de registro de um funcionrio, o nmero de


horas trabalhadas, o valor recebido por hora e o nmero de filhos com idade menor do que 14 anos.
Calcular e mostrar o salrio do funcionrio.

Programa salario;
var
func, nh, f: inteiro;
salario, vh: real;
inicio
escreva (Digite o nmero do funcionrio, horas trabalhadas, valor hora e filhos:);
leia (func, nh, vh, f);
salario:= (nh * vh);
escreva (Salrio do funcionrio: , ma);
fim.

Exemplo: Escrever um algoritmo que leia um valor monetrio e calcule o menor nmero possvel
de notas de 100, 50, 20, 10, 5, 2 e 1 em que o valor lido pode ser decomposto. Mostrar o valor lido e a
relao de notas necessrias. Utilizar a instruo truncar, que fica somente com a parte inteira de uma
diviso. Exemplo: truncar (8/3) produz o resultado 2.

15
Unidade I

Programa troco;
var
vm, saldo: real;
n1, n2, n5, n10, n20, n5O, n100: inteiro;
inicio
escreva (Digite um valor:);
leia (vm);
saldo:= vm;
n100:= truncar(saldo/100);
saldo:= vm-n100*100;
n50:= truncar(saldo/50);
saldo:= vm-n5O*5O;
n20:= truncar(saldo/20);
saldo:= vm-n20*20;
n10:= truncar(saldo/10);
saldo:= vm-n10*10;
n5:= truncar(saldo/5);
saldo:= vm-n5*5;
n2:= truncar(saldo/2);
saldo := vm-n2*2;
n1:= truncar(saldo);
escreva (Total de notas de 100: , n100);
escreva (Total de notas de 50: , n50);
escreva (Total de notas de 20: , n20);
escreva (Total de notas de 10: , n10);
escreva (Total de notas de 5: , n5);
escreva (Total de notas de 2: , n2);
escreva (Total de notas de 1: , n1);
fim.

16
Programao de computadores

Exemplo: Calcular a mdia aritmtica de trs nmeros dados pelo usurio.

Em Portugus Estruturado:

Programa Media_Tres_Numeros
Var
M, N1, N2, N3: real;
Incio
Escreva (Entre com trs nmeros);
Leia (N1, N2, N3);
M(N1+N2+N3)/3;
Escreva (O resultado , M);
Fim.

Observao: se no forem usados os parnteses no processamento M(N1+N2+N3)/3, a expresso


no estar correta quanto ao objetivo de calcular a mdia de trs nmeros.

BIBLIOGRAFIA

BORATTI, I.; OLIVEIRA, A. Introduo programao: algoritmos. Florianpolis: VisualBooks, 2004.

BUCKNALL, A. Algoritmos e estruturas de dados com Delphi. So Paulo: Berkeley, 2002.

CARBONI, I. Lgica de programao. So Paulo: Thomson, 2003.

MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lgica para desenvolvimento de programao. 4. ed.


So Paulo: rica, 2004.

UCCI, W. Lgica de programao: os primeiros passos. So Paulo: rica, 1991.

17

Você também pode gostar