Você está na página 1de 37

Tcnicas de Linguagens de Programao 10 Ano

Unidade I Lgica de Programao


Prof. Carlos Almeida - ESEN Prof. Pascoal Albuquerque - ESS

No estamos aqui para sobreviver e sim para explorar a oportunidade de vencer adquirindo o saber!

"Penso noventa e nove vezes e nada descubro; deixo de pensar, mergulho em profundo silncio - e eis que a verdade se me revela."
(Albert Einstein)

Introduo Lgica de Programao

Lgica
Lgica de programao a tcnica de encadear pensamentos para atingir determinado objectivo.

Sequncia Lgica
Sequncia Lgica so passos executados at atingir um objectivo ou soluo de um problema.

A lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequncia lgica para o desenvolvimento.

Instrues

Instrues so um conjunto de regras ou normas definidas para a realizao ou emprego de algo. Em informtica, o que indica a um computador uma aco elementar a executar. Por exemplo, se quisermos fazer uma omelete de batatas, temos que colocar em prtica uma srie de instrues: escascar as batatas, bater os ovos, fritar as batatas, etc... Essas instrues tem que ser executadas em uma ordem adequada; no se pode descascar as batatas depois de frit-las. Uma instruo tomada em separado no tem muito sentido; para obtermos o resultado, precisamos colocar em prtica o conjunto de

Algoritmo

Um algoritmo uma sequncia ordenada e precisa de passos, aces ou operaes, que conduzem soluo de um dado problema. Em informtica, a formulao de um algoritmo no mais do que a descrio, de forma ordenada, com clareza e rigor, das operaes que se pretende realizar em computador para resolver um Exemplos de algoritmos no computacionais: problema ou atingir determinados objectivos. Somar dois nmeros quaisquer: Chupar um
rebuado: Pegar no rebuado Retirar o papel Chupar o rebuado Escreva o primeiro nmero no rectngulo A Escreva o segundo nmero no rectngulo B Somar o nmero do rectngulo A com o nmero do rectngulo

Algoritmo no a soluo de um problema, pois, se assim fosse, cada problema teria um nico algoritmo. Algoritmo um caminho para a soluo de um problema, e em geral, os caminhos que levam a uma soluo so muitos.

Algoritmos no se aprende: Copiando Algoritmos Estudando Algoritmos

Algoritmos s se aprendem: Construindo Algoritmos Testando Algoritmos Aprender algoritmos no se consegue a no ser atravs de muitos exerccios.

Programas
Os programas de computadores nada mais so do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que so interpretados e executados por uma mquina, no caso um computador. Um programa por natureza muito especfico e rgido em relao aos algoritmos da vida real.

Exerccios
Faa

um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro nmero. Crie uma sequncia lgica para tomar banho. Descreva com detalhes a sequncia lgica para trocar um pneu de um carro. Faa um algoritmo detalhado para trocar uma lmpada.

Desenvolvendo algoritmos

Regras para construo do Algoritmo


Usar

somente um verbo por frase. Imaginar que se est a desenvolver um algoritmo para pessoas que no trabalham com informtica. Usar frases curtas e simples. Ser objectivo. Procurar usar palavras que no tenham sentido duvidoso.

Fases
Vimos que ALGORITMO uma sequncia lgica de instrues que podem ser executadas. Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais. ENTRADA: So os dados de entrada do

algoritmo. PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final. SADA: So os dados j processados.
ENTRADA PROCESSAMENTO SADA

Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a mdia final dos alunos. Os alunos realizaro 3 provas: P1, P2 e P3. Onde: Mdia Final = (P1+P2+P3)/3 Para montar o algoritmo proposto, faremos trs perguntas: a) Quais so os dados de entrada? R: Os dados de entrada so P1, P2 e P3 b) Qual ser o processamento a ser utilizado? R: O procedimento ser somar todos os dados de entrada e dividi-los por 3: (P1 + P2 + P3)/3 c) Quais sero os dados de sada? R: O dado de sada ser a mdia final

Algoritmo: Calcular Mdia do aluno Receber a nota da prova1 Receber a nota de prova2 Receber a nota de prova3 Somar todas as notas e dividir o resultado por 3 Mostrar o resultado da diviso

Teste do Algoritmo
Aps desenvolver um algoritmo ele dever sempre ser testado. Deve-se seguir as instrues do algoritmo de maneira precisa para verificar se o procedimento utilizado est Exemplo: ou no. correcto Nota da Prova 1 Nota da Prova 2 Nota da Prova 3 Utilizar a tabela abaixo:
P1 P2 P3 Mdia

Exerccios

Identifique os dados de entrada, processamento e sada no algoritmo seguinte


Receba cdigo do produto Receba valor do produto (valor unitrio) Receba quantidade do produto Calcule o valor total (Quantidade * Valor do produto) Mostre o cdigo do produto e o valor total

Faa um algoritmo para Calcular o stock mdio de uma pea, sendo que STOCKMDIO = (QUANTIDADE
MNIMA + QUANTIDADE MXIMA) /2

Teste o algoritmo anterior com dados sua escolha.

Formas de Apresentao dos Algoritmos para Computador

Pseudocdigo

Os algoritmos podem ser descritos em uma linguagem chamada pseudocdigo. Os algoritmos so independentes das linguagens de programao. Ao contrrio de uma linguagem de programao no existe um formalismo rgido de como deve ser escrito o algoritmo. O algoritmo deve ser fcil de se interpretar e fcil de codificar. O algoritmo deve ser o intermedirio entre a linguagem falada e a linguagem de programao. A pseudolinguagem pode ser visto como a tentativa de fundir a expressividade da linguagem natural e o rigor lgico de esquemas como o fluxograma. A pseudolinguagem permite a descrio do algoritmo de uma forma linear, fcil de ler e fcil de compreender.

Exemplo de pseudocdigo
Algoritmo circunferncia [Este algoritmo d as caractersticas de uma circunferncia] Dados raio: inteiro rea, permetro: reais PI 3,14159 Incio Ler (raio) rea PI x raio2 permetro 2 x PI x raio Escrever (rea, permetro) Fim

Pseudocdigo
Num algoritmo, podemos definir trs seces: Cabealho
dado o nome ao algoritmo. Comea com a palavra "Algoritmo". Declaraes Descrio das variveis usadas. Corpo Contm a sequncia dos passos (aces) do algoritmo. Inicia-se com a palavra "Incio e termina com "Fim". Comentrios Cada passo do algoritmo pode iniciar com um comentrio entre dois parnteses rectos. Estes comentrios do uma breve descrio do passo ou dum grupo de passos seguintes.

Fluxogramas
uma forma padronizada e eficaz para representar os passos lgicos de um determinado processamento. Define uma sequncia de smbolos, com significado bem definido. Sua principal funo a de facilitar a visualizao dos passos de um processamento. Actualmente, a sua utilizao restringe-se a um apoio complementar na documentao do algoritmo, valendo pela vantagem grfica da apresentao das interligaes.

Alguns Smbolos Usados na Construo de Fluxogramas

Processamento em geral (ex. soma de dois nme

Leitura/Escrita de dados (escrever a nota da prov

Incio/Fim de processamento (ex. inicio do algorit Conector de fluxos (Ligao entre partes do fluxo Deciso condicional Escolha mltipla Subprograma Linha de fluxo

Exemplo de Fluxograma
In c io L e r v a lo r 1

L e r v a lo r 2

V a lo r 1 > V a lo r 2

N o

V a lo r 1 < V a lo r 2

N o

Y es E s c r e v e r v a lo r 1 m a io r

Y es E s c re v e r v a lo r 2 m a io r E s c re v e r v a lo re s ig u a is

R o tin a A d e u s

F im

Algoritmo Comparar Dados valor1, valor2: Inteiros frase: Caracteres Incio Ler (valor1, valor2) Se valor1 > valor2 ento frase valor1 maior Seno Se valor1 < valor2 ento frase valor2 maior Seno frase valores iguais Fim se Fim se Escrever (frase)

Abordagem Estruturada e Concepo Top-Down


Numa linguagem estruturada como por ex. o Pascal distingue-se a parte onde so declarados os dados e o corpo com as instrues do programa parte declarativa e parte operativa. A abordagem top-down procura identificar os pontos essenciais da questo; parte-se dos pontos mais gerais para os seus componentes mais particulares, em nveis sucessivos mais concretos, at ao nvel de pormenor desejado.

Elementos Fundamentais de Programao

Constantes, Variveis e Tipos de Dados


Variveis e constantes so os elementos bsicos que um programa manipula. Uma varivel um espao reservado na memria do computador para armazenar um tipo de dado determinado. Variveis devem receber identificadores (nomes) para poderem ser referenciadas e modificadas quando necessrio. Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e por vezes um valor inicial. Tipos de dados podem ser por exemplo: inteiros, reais, caracteres, lgico, etc. As expresses combinam variveis e constantes para calcular novos valores.

Constantes
Constante

um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme o seu tipo, a constante classificada como sendo numrica, lgica e literal (caracteres).

Variveis
Varivel a representao simblica dos elementos de um certo conjunto. Cada varivel corresponde a uma posio de memria, cujo contedo pode se alterado ao longo do tempo durante a execuo de um programa. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.

Tipos de Dados

As variveis e as constantes podem ser basicamente de quatro tipos: numricas, carcter (caracteres individuais), cadeias de caracteres (strings ou cadeias alfanumricas) e lgicas (ou booleanas). Numricas: especficas para armazenar nmeros, que posteriormente podero ser utilizados para clculos. Podem ser ainda classificadas como Inteiras ou Reais. As variveis do tipo inteiro so para armazenamento de nmeros inteiros e as reais so para o armazenamento de nmeros que possuam casas decimais. Carcter (caracteres individuais): Especficas para armazenar um carcter. Os caracteres disponveis so geralmente os caracteres da Tabela ASCII. Este tipo de dado pode assumir qualquer carcter da referida Tabela ASCII, mas apenas um de cada vez. Cadeias de caracteres (strings ou cadeias alfanumricas): Especficas para armazenar uma cadeia de caracteres alfanumricos (adequados ao manuseamento de texto). No Pascal, o carcter apstrofo () (tambm chamado plica) delimita uma cadeia de caracteres (Ex: Bom trabalho! ). Lgicas ou booleanas: Armazenam somente dados lgicos que podem ser Verdadeiro (True) ou Falso (False).

Exemplos em Pseudocdigo
Total

Produto * Quantidade Fim: lgico Nome: caracteres[20] Preo 23,5 Casar Verdadeiro Saltar 1 Op: carcter Idade: inteiro Mdia, Nota1, Nota2: reais

Operadores
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos trs tipos de operadores:
Operadores

Aritmticos Operadores Relacionais Operadores Lgicos

Operadores aritmticos

Os operadores aritmticos so os utilizados para obter resultados numricos. Alm da adio, subtraco, multiplicao e diviso, podem utilizar tambm o operador para exponenciao. Alguns smbolos para os operadores aritmticos so: + / Mod div * ^ Adio Subtraco Diviso Resto da diviso (Resto) Diviso inteira (Quociente) multiplicao potenciao

Operadores de comparao ou relacionais


Os operadores relacionais so utilizados para comparar String de caracteres e nmeros. Os valores a serem comparados podem ser caracteres ou variveis. Estes operadores sempre retornam valores lgicos (Verdadeiro ou Falso / True ou False) Para estabelecer prioridades no que diz respeito a qual operao executar primeiro, utilize os parnteses.

Os operadores relacionais so:


= <> > < >= <=

Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a

Operadores lgicos ou booleanos


Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado final verdadeiro ou falso. Os operadores lgicos so:

OU E NO NO OU

OR AND NOT XOR

a) Operador AND: TRUE AND TRUE TRUE AND FALSE FALSE AND TRUE FALSE AND FALSE b) Operador OR: TRUE OR TRUE TRUE OR FALSE FALSE OR TRUE FALSE OR FALSE c) Operador NOT: NOT TRUE NOT FALSE d) Operador XOR: TRUE XOR TRUE TRUE XOR FALSE FALSE XOR TRUE FALSE XOR FALSE

=> TRUE => FALSE => FALSE => FALSE => => => => => FALSE => TRUE => FALSE => TRUE => TRUE => FALSE TRUE TRUE TRUE FALSE

Instrues Bsicas

Comando de escrita:

Escrever(Paula) Escrever(A minha idade : , IDADE) Ler(NOME) Ler(IDADE, NOME) A VALOR NUM 3 A3+B/2 CIDADE Lisboa

Comado de leitura:

Instrues de atribuio