1 LA SALLE Curso Técnico em Informática Método de Programação Prof. Esp. Valter N. Silva...

Post on 17-Apr-2015

107 views 3 download

Transcript of 1 LA SALLE Curso Técnico em Informática Método de Programação Prof. Esp. Valter N. Silva...

1

LA SALLE

Curso Técnico em Informática

Método de Programação

Prof. Esp. Valter N. Silva

e-mail: nei@portoweb.com.br

Tel: (0XX) (51) 9991-5369

2

Algoritmo

Produzir um programa para um computador é definir, detalhadamente, os passos lógicos que o computador precisa seguir para executar uma determinada tarefa.

Só é possível informar ao computador o que fazer se tivermos uma idéia clara de como pretendemos que ele faça o que desejamos.

3

Algoritmo

Está aí dificuldade de programação: mostrar que um dado problema pode ser resolvido por um conjunto seqüencial de instruções. Neste sentido, primeiro raciocinamos sobre o assunto, tentando definir com clareza os passos necessários para a solução imaginada e, por fim codificamos em uma linguagem que o computador possa entender.

4

Dentre as formas de representação de

algoritmos mais conhecidas sobressaltam:

Descrição Narrativa;

Fluxograma Convencional;

Pseudocódigo, conhecida como Linguagem

estruturada ou Portugol.

5

Descrição Narrativa:

Receita de bolo:

Misture os ingredientesUnte a forma com manteigaDespeje a mistura na forma Se houver coco ralado então despeje sobre a misturaLeve a forma ao fornoEnquanto não corarDeixe a forma no fornoRetire do forno Deixe esfriar

6

Início

Média > 7 “Reprovado”

Fim

.S.

“Aprovado”

Média(N1+N2)/2

Ler N1, N2

.N.

Fluxograma Convencional

7

Pseudocódigo ou Linguagem Estruturada

Algoritmo Média

Var N1, N2, Média : realInícioLeia N1, N2Média (N1 + N2) / 2Se Média < 7 Então Escreva “Reprovado”Senão Escreva “Aprovado” Fim_seFim.

8

Dados NuméricosO conjunto dos números naturais é representado por N e é dado por:

N = {1,2,3,4,...)

Conjunto dos números inteiros.

Z = { ...,-3,-2,-1,0,1,2,3,...}

Conjunto de números reais.

PI = 3,14159

9

Dados Numéricos Inteiros

Os números inteiros são aqueles que não possuem componentes decimais ou fracionários, podendo ser positivos ou negativos.

Exemplo de números inteiros:

28 – número inteiro positivo

0 – número inteiro

-12 – número inteiro negativo

10

Dados Numéricos ReaisOs dados de tipo real são aqueles que podem possui componentes decimais ou fracionários, e podem também ser positivos ou negativos.

Exemplo de dados do tipo real:

24.01 – número real positivo com duas casas decimais

144. - número real positivo com zero casas decimais

-13.3 - numero real negativo com uma casa decimal

0.0 - número real com uma casa decimal

0. - número real com zero casas decimais

11

Dados Literais (caracter)O tipo de dados literal é constituído por uma seqüência de

caracteres contendo letras, dígitos e/ou símbolos especiais. Este

tipo de dados é também muitas vezes chamado de alfanumérico,

(0..9 – A ..Z, a .. Z) carateres especiais ( #, /, %, *, ?, ~, !, @ ...)

cadeia (ou cordão) de caracteres, ou ainda, do inglês , STRING.

Obs.: Os dados literais são representados nos algoritmos pela

coleção de caracteres , delimitada em seu início e término com o

caracteres aspas ( “ ).

Exemplos:

“QUANDO ?” - Literal de comprimento 8

“ ” - Literal de comprimento 1

“1-2+7=“ - Literal de comprimento 6

12

Dados Lógicos

O tipo de dados lógico é usado para representar dois

únicos valores lógicos possíveis: verdadeiro e falso. É

comum encontrar referências como tipos de valores

lógicos como sim/não, 1,0, true/false. (dois estados)

Exemplo:

.V. - valor lógico verdadeiro

.F. - valor lógico falso

13

Algoritmos Seqüenciais.

Consiste de comandos de atribuição de entrada e saída encadeados em uma seqüência.

1 Escrever um algoritmo que leia 3 notas de um aluno e calcule a média aritmética. Ao final escreva a média.

14

Algoritmo de notas

Programa NotasVariáveis

MA, N1, N2, N3: real Início Ler (N1, N2,N3) MA : = (N1+N2+N3) / 3 Escrever “Média Aritmética: “ , MA Fim do Algoritmo.

15

Exemplo

2 Faça um Algoritmo que calcule as raízes de uma equação de 2º grau, a partir dos coeficientes A,B,C fornecidos pelo usuário.

16

Algoritmo

Programa calculo;Variáveis

A,B, C, X1, X2 : real;Início Ler (A, B,C) X1 : = (-B+SQRT(B*B-4*A*C) / 2 * A X2 : = (-B-SQRT(B*B-4+A+C)/2*A Escrever “As Raízes: “ ,X1,X2Fim

17

AtençãoPara que um computador possa

desempenhar uma tarefa é necessário que esta seja detalhada passo a passo numa forma compreensível pela máquina, utilizando aqui que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.

18

Para se ter um algoritmo é necessário preciso:

a) Que se tenha um número finito de passos

b) Que cada passo esteja precisamente definido;

c) Que existam entradas ou valores iniciais;

d) Que existam uma ou mais saídas;

e) Que exista uma condição de fim.

19

Elementos de um algoritmo

a) Seqüência;

b) Seleção;

c) Repetição condicional;

d) Repetição contada;

20

Tipos Primitivos de Dados

A elaboração de qualquer algoritmo seria impossível se desconsiderasse as estruturas de dados envolvidos, pois todo o trabalho do computador está baseado na manipulação das informações contidas na sua memória.

21

Declaração de variáveisVar

<nome da variável> : <Tipo primitivo de dados>Ou

<lista de variáveis> : <Tipo primitivo de dados>

Sintaxe: var

idade : inteiro

salario, inflacao : real

endereco : caracter

verdade : logico

22

Tipos de informaçõesAs informações tratadas em um algoritmo podem ser classificadas em dois tipos:Constantes Informações que não sofrem alterações com o decorrer da execução do algoritmo.

Sintaxe: const nome := “Angela” mensagem := “Bom noite !” UF : = “RS”

Instrução de atribuição muito utilizado nos algoritmos como () e na programação em pascal (:=)

23

Variáveis: Informações que tem a possibilidade de serem alteradas em algum instante no decorrer da execução do algoritmo ( programa).

Sintaxe:

var

nome : caracter;

salario : real;

idade : inteiro;

24

Comando de atribuição

<variável> := <expressão>

Comando de atribuição

25

Estrutura de um algoritmo

Algoritmo < nome do algoritmo >

Var

< declaração de variáveis >

Const

< declaração de constante >

Inicio

escrever

ler

testar

calcular

Fim.

Comandos

26

Comando de entrada e saída

Entrada: ler < lista de variáveis>

Saída: escrever < lista de variáveis>

Exemplo:

Ler A, B, C

calcular

Escrever “A media do aluno é: “, media

27

Algoritmos Condicional.1 Faça um algoritmo que receba 3 números reais diferentes e informe qual é o maior .Algoritmo nros;Var A, B, C : inteiro;Ler A, B e CSe A é Maior que B Então Se A é Maior que C

Escrever “A é o maior” Senão Escrever “C é o maior” Fim SeSenão Então Se B é maior que C

Escrever “B” é o maior” Senão

Escrever “C é o maior” Fim SeFim SeFim do Algoritmo.

28

2 Leia número, nome e salário atual de um funcionário. Calcule o novo salário com um reajuste de 10 %. Escreva o número, nome e salário novo ao final da leitura do registro.

Algoritmo SalárioVar nro : inteiro

nome : Literal[30]salário : real

inicioler nro, nome, saláriosalário := (salário * 1.10)escrever (número, nome, salário)

fim.

29

3 - Leia o ano de nascimento de uma pessoa e calcule sua idade. Caso seja maior ou igual à 21 anos exiba a seguinte mensagem: “Maior de idade” caso contrário “Menor de idade”.

Algoritmo idadeVar

Ano_nasc: inteiro;Ano_atual: inteiro;Idade: inteiro;

InicioLer ano_atualLer ano_nascIdade := (ano_atual – ano_nasc)Escrever idadeSe idade >= 21 Então

Escrever “Maior de idade” Senão

Escrever “Menor de idade”Fim.

30

Fluxograma

Exemplo: Ler salário de funcionários da empresa XYZ e conceder reajuste salarial conforme os cargos. Aos Técnicos o reajuste será de 50 %, os Gerentes 30 % e aos demais 10 %.

31

Algoritmo

Programa reaj_salario;Var Salario, sal_reaj : real; Prof : literal[20];Início;

Leia salário, prof;EscolhaCaso prof = “Técnico”

Sal_reaj 1.5 * salárioCaso prof = “Gerente”

Sal_reaj 1.3 * salárioSenão

Sal_reaj 1.1 * salárioFim escolha

Escrever “ Salario Reajuste = “ ; Sal_reaj;Fim.

32

V

V

Sal_Reaj.

1.5 * Salário

Sal_Reaj.

1.3 * Salário

Ler Salário

Prof..

Prof =

“Técnico”.

Prof =

“Gerente”.

Sal_reaj.

1.1 * Salário

“Salário Reajustado”,

Sal_reaj

Fim

Início Algoritmo

Program reaj_salario;

var Salario, Sal_reaj : real;

Prof : literal[20];

Início;

Leia salário, prof;

Escolha

Caso prof = “Técnico”

Sal_reaj 1.5 * salário;

Caso prof = “Gerente”

Sal_reaj 1.3 * salário;

Senão

Sal_reaj 1.1 * salário;

Fim escolha

Escrever “Salário Reajustado”, Sal_reaj;

Fim.

F

Fluxograma seguido de algoritmo

33

Fluxograma seguido de algoritmo

Início

Média > 7 “Reprovado”

Fim

.S.

“Aprovado”

Média(N1+N2)/2

Algoritmo Média

Var N1, N2, Média : realInícioLeia N1, N2Média (N1 + N2) / 2Se Média < 7 Então Escreva “Reprovado”Senão Escreva “Aprovado”

Fim_seFim.

.N.

Ler N1, N2

34

Exercícios

1)Desenvolver um algoritmo que leia a altura, largura e profundidade após calcule o perímetro.

Programa área;Variavel A,L,P : integer;Início Escrever(‘Altura:’); ler(A); Escrever(‘Largura:’); ler(L); Escrever(‘Profundidade:’); ler(P); escrever(‘Resposta: ‘,A*L*P,’cm3); fim.

35

1) Ler 10 nº e mostre a quantidade de nº negativos e positivos.

Programa ler_num;

variavel

X,N,POS,NEG : inteiro;

início

limpar tela;

escrever(´Informe 10 numeros´);

X:= 1;

enquanto (X< 11) faça

início

ler(N);

se (N < 0 ) então

neg := neg +1

senão

pos := pos + 1;

fim.

X:=X +1;

escrever(´Numeros positivos: ´, POS);

escrever(´Numeros negativos:´, NEG);

fim

Fim.

36

2) Digite um número que não seja negativo, caso ocorra de um ser negativo escreva-o na tela e envie esta mensagem Este número eh negativo, quando o número for positivo você enviará duas mensagens: Você digitou certo Este número não é negativo

programa nro_correto;

variável

numero : real;

início

escrever(´Digite um numero não negativo´);

ler(numero);

se numero < 0 então

início

escrever(´Voce digitou : ´, numero);

escrever(´Este numero eh negativo´);

fim

senão

início

escrever(´Voce digitou certo: ´, numero);

escrever(´Este valor não eh negativo´);

fim;

fim.

37

Atenção !!!

- repete o bloco de comandos até que a condição seja verdadeira;

- não é necessário incluir inicio e fim para especificar o bloco de comandos pertencentes ao comando repetir;

- como a condição é testada somente no final do comando, o bloco de comandos do repetir é executado pelo menos uma vez.

38

Algoritmo1 – Conhecer dois valores (variáveis A e B);2 - Efetuar a soma dos valores A e B e implicar o valor da soma em X;3 – Verificar se X e maior ou igual 10, caso sim mostre X+5, senão mostre X-7.

Programa ADICIONA_NUMEROS;Var X, A, B : integer;Inicio

escrever(‘Informe um valor para a variável A: ‘); ler(A);escrever(‘Informe um valor para a variável B: ‘); ler(B);X := A + B;escrever(‘O resultado equivalente a: ‘);se (X >= 10) então então(X + 5)senão então(X – 7);fim.

39

Operadores Aritméticos

As quatro operações básicas:

+ adição

-  subtração

* multiplicação

/ divisão

40

Operadores Relacionais e Lógicos

< menor que

> maior que

<= menor ou igual que

>= maior ou igual que

= igual a

<> diferente de

e; ou; não negação

41

Operadores Lógicos

Existem ocasiões onde é necessário trabalhar com o relacionamento de duas ou mais condições ao mesmo tempo na mesma instrução se...então, efetuando desta forma testes múltiplos. Para estes casos é necessário trabalhar com a utilização dos operadores lógicos, também conhecidos como operadores boleanos.

42

Os operadores relacionais são três: e, ou e

não. Em alguns casos, o uso de operadores

lógicos evita a utilização de muitas instruções

se...senão encadeadas.

43

PONTO E VÍRGULA: 

O ponto e vírgula no Algoritmo (Turbo Pascal) indica o fim do comando e sua presença é obrigatória. 

 INÍCIO E FIM DE PROGRAMA: Todos os programas em Algoritmo (Turbo Pascal) devem começar e terminar desse modo: programa Exemplo;..início..fim. O "programa" indica o início do programa; "Exemplo" é um nome qualquer dado ao programa; “início" indica o início e ‘fim" o fim do processamento.

44

Operador Lógico: E

O operador do tipo E é utilizado quando dois

ou mais relacionamentos lógicos de uma

determinada condição necessitam ser verdadeiros.

Abaixo é apresentada a tabela verdade para este tipo

de operador:

Condição 1 Condição 2 Resultado Falsa Falsa Falso Falsa Verdadeira Falso Verdadeira Falsa Falso Verdadeira Verdadeira Verdadeiro

45

O operador E faz com que somente seja executada uma determinada operação se todas as condições mencionadas forem simultaneamente verdadeiras, gerando assim um resultado lógico verdadeiro. Exemplo:

programa TESTA_LOGICA_E;var numero : inteiro;início escrever('Informe um número: '); ler(numero); se (numero >= 20) e (numero <= 90) então escrever('O número está  na faixa de 20 a 90') senão escrever('O número está  fora da faixa de 20 a 90');fim.

46

Operador Lógico: OU

O operador o tipo ou é utilizado quando pelo menos um dos relacionamentos lógicos (quando houver mais de um relacionamento) de uma condição necessita ser verdadeiro. Abaixo é apresentada a tabela verdade para este tipo de operador:

Condição 1 Condição 2 Resultado Falsa Falsa Falso Verdadeira Falsa Verdadeiro Falsa Verdadeira Verdadeiro Verdadeira Verdadeira Verdadeiro

47

Exemplo:

programa TESTA_LOGICA_OR;

var

sexo : literal;

início

escrever('Entre com o seu sexo: '); ler(sexo);

escrever;

se sexo = 'masculino' ou sexo = 'feminino' então escrever('O seu sexo ‚ válido')

senão

escrever('O seu sexo ‚ inválido');

fim.

48

Operador Lógico: NÃOO operador do tipo não é utilizado quando se necessita estabelecer que uma determinada condição deve não ser verdadeira ou deve não ser falsa. O operador não se caracteriza por inverter o estado lógico de uma condição. Abaixo é apresentada a tabela verdade para este tipo de operador:

Condição 1 Resultado Verdadeira Falso Falso Verdadeiro

49

O operador não faz com que seja executada uma determinada operação, invertendo o resultado lógico da condição. Veja o exemplo a seguir:

programa TESTA_NÃO_LOGICA;

var

A, B, C, X : inteiro;

início;

escrever('Entre um valor para a variável A: '); ler(A);

escrever('Entre um valor para a variável B: '); ler(B);

escrever('Entre um valor para a variável X: '); ler(X);

se não (X > 5) então

C := (A + B) * X

senão

C := (A - B) * X;

escrever('O resultado da variável C corresponde a: ', C);

fim.

50

Os Loopings

Existem situações onde é necessário repetir um

determinado trecho de um programa um número de

vezes. Isto pode ser conseguido de duas formas: a

primeira, onde será escrito o mesmo trecho tantas vezes

quanto necessário, um tanto trabalhoso, e a Segunda

forma onde poderá ser utilizado o conceito de looping.

Os loopings são conhecidos também por: laços ou

malhas. A principal vantagem em se utilizar o conceito

de looping é que passa a ter um tamanho menor.

51

Estrutura Enquanto...faça

Enquanto <(condição)> faça

início

<instruções para condição verdadeira>

fim;

52

Algoritmo

1 – Criar uma variável para servir como contador com valor inicial 1;2 – Enquanto o valor do contador for menor ou igual a 5, processar os passos 3, 4 e 5;3 – Ler os valores;4 – Efetuar o cálculo, implicando o resultado em R;5 – Apresentar o valor calculado contido na variável R;6 – Acrescentar o contador com mais 1;7 – Quando contador for maior que 5 encerrar o processamento.

53

Programa LOOPING_1A;Var

A, B, R, I : inteiro; início

I := 1;enquanto ( I<= 5) faça

início escrever(‘Entre um valor para A: ‘);

ler(A);

escrever(‘Entre um valor para B: ‘); ler(B); R := A + B; escrever(‘O resultado corresponde a: ‘, R);

fim;

fim.

54

looping

Um programa que vai executar a rotina

varias vezes, mas este não sabe quantas vezes ao

certo deverá executar o trecho de programa. Neste

caso, não seria conveniente manter um contador

para controlar o looping, seria melhor que o

programa fizesse ao usuário uma pergunta,

solicitando se o mesmo deseja ou não continuar

executando programa.

55

Algoritmo

1- Criar uma variável para ser utilizada como resposta;

2- Enquanto a resposta for sim, executar os passos 3, 4 e 5;

3- Ler os valores;

4- Efetuar o cálculo, aplicando o resultado em R;

5- Apresentar o valor calculado contido na variável R;

6- Quanto a resposta for diferente de sim, encerrar o processamento.

56

Programa LOOPING_1B; var A, B, R : inteiro;

RESP : literal;início

RESP := ‘SIM’;

enquanto (RESP = ‘SIM’) or (RESP = ‘S’) faça início escrever(‘Entre um valor para A: ‘); ler(A); escrever(‘Entre um valor para B: ‘); ler(B); R := A + B; escrever(‘O resultado corresponde a: ‘, R); escrever(‘Deseja continuar ? ‘); ler(RESP); fim;fim.

57

Repita..Até

O comando repita controla repetições de trecho de programas tal

como o para. Mas há duas diferenças fundamentais que são estas:

Comando: repita controla a condição de repetição após sua

execução. Ele é sempre executado pelo menos uma vez.

 

1.O número de vezes que as linhas de programas situadas dentro

do repita...até não precisa estar predefinido. Os próprios comandos

situados no repita...até podem determinar a saída ou não do laço

de repetição.

2.A verificação da suficiência ou não da condição de repetição é

feita no fim do laço.

58

1) O programa abaixo só terminará se for digitado um

número menor que zero. Programa teste1; var

valor : real; início

valor 0;repita escrever(‘Digite um número:’ ); ler(valor);até valor < 0;

fim. 

Quando o número(valor) digitado for menor que zero (número negativo), o programa terminará o laço.

59

2)O programa a seguir imprime números de zero a 100.

 Programa Teste2;var

I : real;início

I 0;repita

escrever( I );I I + 1;

até I > 100;

fim.

60

3) Este algoritmo deverá ler 150 valores e calcular a soma deles, utilizando o comando Repita..até.

Programa teste3.

Var

soma, x, valor : inteiro;

Início

Escrever (‘Digite 150 valores inteiro: ‘);

Soma:= 0;

X 1;

Repita

Ler(valor);

Soma (Soma + Valor);

X (X + 1);

Até X > 150;

Escrever (‘Soma Final dos Valores: ‘, Soma);

End.

61

4) Desenvolva um algoritmo que acesse números maiores que zeros, quando for digitado um número igual a zeros ou menor o programa deverá encerrar.

Programa maior_que_zero;Variável Num : inteiro;início Repetir Escreva(‘Digite um Valor:’); Ler (num) Se num > 0 então

Escreva(‘Raíz Quadrada: ’, Num, ‘eh’, SQRT(num):2:2); Até num =< 0;fim.

62

Para..Faça

Atenção !! A variável contadora é controlada

automaticamente pelo comando PARA. Não devemos alterar o valor desta variável durante a execução do PARA.

O próprio comando PARA testa a variável contadora e encerra a sua execução quando esta variável tiver o valor > que o valor final definido;

63

Para..Faça1) Esta estrutura de repetição é utilizada quando se sabe o número de vezes em que um trecho de programa deve ser repetido.

Exemplo:

Programa teste; Var cont : inteiro;Início para cont := 1 até 4 faça inicio

comando1; comando2; fim;Fim.

64

2) Este algoritmo deverá ler 150 valores e calcular a soma deles, utilizando o comando Para..Faça.

Programa teste4;Var soma, X, valor : interiro;

Início Escrever(‘Digite 150 valores inteiros: ‘); soma 0; Para X 1 até 150 faça início ler(valor); soma soma + valor; fim; Escrever (‘Soma final dos valores: ‘, soma);Fim.

65

3) Ler 10 nº e mostre a quantidade de nº negativos e positivos.

Programa ler_num;variável CONT,N,POS,NEG : inteiro;

inícioescrever(´Informe 10 números: ´);cont 0;

para cont 1 até 10 faça início

ler(N);se (N < 0 ) então neg := neg +1senão pos := pos + 1;fimse

fim escrever(´Números positivos..: ´, POS);

escrever(´Números negativos.: ´, NEG);Fim.

66

4) Ler 05 notas a cada nota lida o algoritmo deverá exibir caso a NOTA ser igual ou superior a 7 a seguinte mensagem: ‘ Você está na Média’) caso contrário a mensagem deverá ser: ‘ Você está abaixo da Média’).

Programa Medias;

variável

CONT,NOTA : inteiro;

início

escrever(´Ler notas: ´);

para CONT 1 até 5 faça

início

ler(Nota);

se (N >=7 ) então

escrever(‘Você está na média’)

senão

escrever(‘Você está abaixo da Média’);

fim;

Fim.