Você está na página 1de 34

Escola Estadual de Educao Profissional - EEEP

Ensino Mdio Integrado Educao Profissional

Curso Tcnico em Informtica

Lgica de Programao

Governador Cid Ferreira Gomes Vice Governador Francisco Jos Pinheiro

Secretria da Educao Maria Izolda Cela de Arruda Coelho Secretrio Adjunto Maurcio Holanda Maia

Secretrio Executivo Antnio Idilvan de Lima Alencar

Assessora Institucional do Gabinete da Seduc Cristiane Carvalho Holanda Coordenadora de Desenvolvimento da Escola Maria da Conceio vila de Misquita Vins Coordenadora da Educao Profissional SEDUC Andrea Rocha Araujo

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

LGICA DE PROGRAMAO
Ementa Curso pretende aplicar os conhecimentos de lgica de programao servindo de introduo ao estudo da programao de sistemas de computadores e a orientao a objetos. Objetivo PROPICIAR AOS ALUNOS INTEGRANTES DO CURSO:

Desenvolver a construo de algorimos usando:


o o o

Seqncia Lgica. Instrues. Estruturas de Comandos

Contedo programtico
CONCEITOS INICIAIS LGICA LGICA DE PROGRAMAO ALGORITMOS FORMAS DE REPRESENTAO DE UM ALGORITMO ALGORITMOS NATURAIS ELEMENTOS USADOS NOS ALGORITMOS CONSTANTES VARIVEIS EXPRESSES OPERANDOS E OPERADORES OPERANDOS OPERADORES ESTRUTURAS DE CONTROLE ESTRUTURA SEQENCIAL ESTRUTURA DE SELEO SIMPLES ESTRUTURA DE SELEO COMPOSTA ESTRUTURA DE SELEO MLTIPLA SELEO MLTIPLA COM ESTRUTURA DE FACA CASO: ESTRUTURA DE REPETIO ESTRUTURA PARA PROXIMO EXEMPLO DE REPETIO POR FLAG DE RESPOSTA EXEMPLO DE REPETIO POR FLAG PREDETERMINADO PROCEDIMENTOS E FUNES DIFERENA ENTRE PROCEDIMENTO E FUNO

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

PASSAGEM DE PARMETROS EXEMPLOS DE PROCEDIMENTO E FUNO RECURSIVIDADE RESULTADO VETORES E MATRIZES ALGORITMOS PARA MANIPULAR VETORES E MATRIZES EXERCCIOS COM ALGORITMOS

Referencia bibliogrfica
Lgica de Programao : SENAC.RS - Departamento Regional no Rio Grande do Sul

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

CONCEITOS INICIAIS

Desde os primrdios, o homem vem tentando resolver seus problemas com maior rapidez e o menor esforo possveis, procurando automatizar as tarefas rotineiras. Isso possibilitou o aparecimento de instrumentos como a roda, roldana, alavanca, carro e at o computador. No entanto as tarefas que devem ser realizadas pelo computador, de forma automtica, tm de ser anteriormente pensadas e colocadas em uma seqncia de aes para, posteriormente, serem inseridas na mquina. A essa seqncia deaes denomina-se Programa e fase de formular solues que gerem programas denomina-se Lgica de Programao. Programar basicamente Construir Algoritmos. A meta principal de qualquer programador resolver problemas por meio de solues lgicas para obter resultados eficientes (corretos) e eficazes (com qualidade). Porm, se as solues no forem bem planejadas (passo a passo), com certeza essa meta no ser atingida. Antes de iniciar o estudo de Lgica de Programao, conhea alguns conceitos bsicos: SOFTWARE Software o conjunto dos programas que comandam o funcionamento do Hardware. Programas so feitos a partir de algoritmos (objeto de estudo deste curso), seqncias de instrues/comandos para se atingir um objetivo. Depois de pronto, o algoritmo convertido para uma linguagem de programao. O produto dessa converso um programa. LGICA As pessoas utilizam a lgica no cotidiano sem perceber; chegam mesmo a cit-la, sem entender direito o seu significado. Segundo o dicionrio Aurlio, a lgica a coerncia de raciocnio, de idias, ou ainda a seqncia coerente, regular e necessria de acontecimentos, de coisas. Voc pode perceber isso, nos exemplos a seguir: O nmero 3 menor que o nmero 5. O nmero 7 maior que o nmero 5. Logo, o nmero 3 menor que os nmeros 5 e 7. Quando chove, no preciso regar as plantas do jardim. Hoje choveu. Logo, hoje no preciso regar as plantas do jardim. O Brasil fica na Amrica do Sul. A Amrica do sul fica no continente americano. Logo, os brasileiros so americanos. s vezes o raciocnio funciona desordenadamente. Quantas vezes voc j ouviu as frases: E se acontecer aquilo?, ou , mas eu no tinha pensado nisso! Neste exemplo, esto descritas aes de quem vai a um banco; entretanto, veja se seria possvel retirar o dinheiro obedecendo seqncia descrita.

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

1 Sair do banco. 2 Aguardar a vez de ser atendido. 3 Entrar na fila do caixa. 4 Digitar a senha. 5 Entrar no banco 6 Informar o valor a ser retirado. 7 Procurar a fila do caixa. 8 Pegar o comprovante de saque, o carto eletrnico e o dinheiro. 9 Entregar o carto eletrnico ao funcionrio que atende no caixa. 10 Conferir o valor em dinheiro. Voc conseguiria retirar o dinheiro? Com certeza no, pois, embora as aes estejam corretas, a seqncia est errada. A primeira ao sair do banco. Como se pode retirar dinheiro de um banco estando fora dele? Agora observe as mesmas aes na seqncia correta. 1 Entrar no banco. 2 Procurar a fila do caixa. 3 Entrar na fila do caixa. 4 Aguardar a vez de ser atendido. 5 Entregar o carto eletrnico ao funcionrio que atende no caixa. 6 Informar o valor a ser retirado. 7 Digitar a senha. 8 Pegar o comprovante de saque, o carto eletrnico e o dinheiro. 9 Conferir o valor em dinheiro. 10 Sair do banco Utiliza-se a lgica para ordenar e corrigir pensamentos ou aes voltados para a soluo de problemas. LGICA DE PROGRAMAO Falar em Lgica de Programao significa apenas contextualizar a lgica na programao de computadores, buscando a melhor seqncia de aes para solucionar determinado problema. Na programao de computadores, o nome dessa seqncia de aes Algoritmo, que , de maneira bem simples, a seqncia de passos ou aes para atingir um objetivo. J ao um fato que, a partir de um estado inicial, aps um perodo de tempo finito, produz um estado final previsvel e definido. Por exemplo, abrir uma porta uma ao.

Estado inicial (porta fechada), aplicada a ao (abrir) por um tempo determinado (segundos), levando ao estado final (porta aberta), previsvel e definido (pois esperado que, quando se abre algo, principalmente qualquer porta, no final, ela esteja aberta). OBJETIVO O objetivo deste curso proporcionar a apropriao de conhecimentos capazes de reconhecer, utilizar e saber a finalidade e o funcionamento das tcnicas, ferramentas e elementos utilizados na construo de algoritmos para que possamos ordenar, desenvolver e aprimorar o raciocnio lgico aplicado na soluo de problemas do cotidiano.

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

ALGORITMOS O QUE UM ALGORITMO? Um Algoritmo uma seqncia finita de instrues bem claras, bem definidas e bem detalhadas que, quando colocadas em uma ordem lgica, nos levam a soluo de um problema. Os Algoritmos independem da linguagem de programao a ser utilizada. O objetivo da construo de Algoritmos que eles possam ser adaptados a qualquer linguagem de programao. No existe apenas um Algoritmo para a soluo de um problema. Um Algoritmo pode ser numrico ou no. Um Algoritmo pode ter tantas entradas e sadas de dados, quantas forem necessrias, pode at no ter entradas, mas obrigatoriamente dever ter pelo menos uma sada de dados que o resultado do processamento. FORMAS DE REPRESENTAO DE UM ALGORITMO Temos 3 (trs) formas de representar um algoritmo: PSEUDOCDIGO (OU PORTUGUS ESTRUTURADO, OU PORTUGOL). FLUXOGRAMA DIAGRAMA DE CHAPIN PSEUDOCDIGO: As estruturas lgicas so escritas numa linguagem prxima ao portugus, na seqncia em que so executadas. FLUXOGRAMA: Nesta forma de representao as estruturas lgicas so expressas atravs de figuras geomtricas, interligadas por setas que indicam o caminho a ser seguido.

ALGORITMOS NATURAIS Algoritmos naturais so usados para linguagens mais antigas que no so estruturadas e nem modulares, como Fortran, Basic, Cobol (antes de ter ocomando Perform), etc... Esse tipo de algoritmo utiliza comandos de retorno ou avano (instruo GOTO), do fluxo para determinada linha do algoritmo. Com o surgimento das linguagens de programao estruturadas e modulares esse tipo de algoritmo se tornou obsoleto. As linguagens estruturadas no possuem mais os comandos de retorno ou avano (instruo GO TO), para uma determinada linha do algoritmo, a prpriaestrutura que define o retorno ou avano do fluxo. EXEMPLO DE ALGORITMO NATURAL Algoritmo para retirar a devoluo do Imposto de Renda.

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

INICIO Passo 1 Sair de casa. Passo 2 Ir at o banco. Passo 3 dirigir-se ao balco. Passo 4 J chegou a devoluo do Imposto de Renda? Passo 5 Sim: v para o passo 12. Passo 6 No: Voltar para casa. Passo 8 Esperar um dia. Passo 9 sbado, domingo ou feriado? Passo 10 Sim: v para o passo 8. Passo 11 No: v para o passo 1. Passo 12 Retirar o dinheiro. Passo 13 Voltar para casa. FIM ALGORITMO NATURAL COMPARADO COM ALGORITMO ESTRUTURADO Desafio: ler dez valores numricos, mostrar os valores lidos e no final mostrar a soma dos nmeros digitados.

Na construo de algoritmos, utilizamos diversos elementos. Entre eles podemos citar valores informados ao programa (pelo teclado ou lidos de um disco), comandos para armazenar valores, expresses, estruturas, e etc. Veremos a seguir quais so esses elementos, quando usar, para que usar e como eles funcionam dentro de um algoritmo.

ELEMENTOS USADOS NOS ALGORITMOS 1 CONSTANTES: 1.1 Numrico;


Informtica - Lgica de Programao 6

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

1.2 Data; 1.3 Lgica; 1.4 Caracter (texto, literal, string) 2 VARIVEIS: 2.1 Numrico; 2.2 Data; 2.3 Lgica; 2.4 Caracter (texto, literal, string) 3 EXPRESSES: 3.1 Operandos; 3.2 Operadores; 4 COMANDO DE ATRIBUIO: 5 ESTRUTURAS: 5.1 Seqencial; 5.2 Seleo; 5.2.1 Simples; 5.2.2 Composta; 5.2.3 Mltipla; 5.3 Repetio; 5.3.1 Contador fixo; 5.3.2 Flag; 5.3.2.1 De resposta; 5.3.2.2 Predeterminado; CONSTANTES CONSTANTES: so valores utilizados no processamento, mas que no sofrero alteraes durante o mesmo. Exemplos: nomes, datas de nascimento, nmeros de funcionrios, nomes de cidades, etc. As constantes podem ser dos seguintes tipos: NUMRICO: Quando comeam por um nmero, um sinal ou um parntese, todos os demais caracteres so apenas nmeros, com apenas uma exceo, que o separador decimal (dependendo da linguagem, pode ser o ponto ou a vrgula). Exemplos: 123, 34,75, (567), -512, etc. DATA: Quando tiver um formato conhecido de data. Os mais comuns so: dd/mm/aa, dd/mmm/aa, dd/mm/aaaa, dd/mmm/aaaa, dd/mm, dd/mmm, mm/aa, mmm/aa, mm/aaaa, mmm/aaaa. LGICA: (Booleanas). So os valores que correspondem s quatro letras ou palavras lgicas correspondentes: T (True), F (False), Y (Yes), N (No).

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

CARACTER: (Texto, Literal ou String). So reconhecidas pela excluso, ou seja, tudo que no for reconhecido como numrico, data ou lgico, do tipo caracter. VARIVEIS VARIVEIS: No so valores. Variveis so endereos de memria (Ram) que armazenam temporariamente valores. Esses endereos recebem um rtulo, que o nome da varivel, e um contedo. Cada vez que mencionamos o nome da varivel, manipulado o seu contedo. Observao: Podemos imaginar uma varivel como sendo uma gaveta em um armrio (endereo de memria Ram), onde guardamos alguma coisa (contedo), prego, por exemplo. Para identificar esta gaveta colocamos uma etiqueta (rtulo), com o nome de prego (nome da varivel). Quando queremos pregos temos que abrir a gaveta que tem o rtulo prego e pegar o seu contedo. Os nomes das variveis devem sempre comear por uma letra, no devem ter espaos em branco e nem caracteres especiais, no mximo o smbolo sublinhado. Exemplos: Nome_cli, Num_func, Datanasc, etc. As variveis so declaradas no incio do algoritmo. Dependendo do valor a ser armazenado, as variveis podero ser dos tipos: Numrico, Data, Lgico ou Caracter (texto, literal ou string). Os valores armazenados nas variveis permanecem at que: O computador seja desligado (normal ou por falta de energia), visto que so armazenados na memria Ram; Por trmino do programa ou rotina onde foram criadas; Seja atribudo um novo valor para a mesma varivel. Observao: S podemos armazenar um valor de cada vez em uma varivel. Ao atribuirmos um novo valor que deve ser do mesmo tipo, o valor anterior ser sumariamente eliminado. Exemplo: Se escrevermos A=5, o valor cinco ser o contedo da varivel A. Se mais adiante escrevermos A=20, o valor vinte passa a ser o novo contedo da varivel A, e o valor anterior, cinco, ser eliminado. Escopo: (abrangncia), as variveis, dependendo da linguagem, podem ser Pblicas (Public) ou Globais (Global) e Privadas (Private) ou Locais (Locals). Observao: As variveis Pblicas ou Globais so vistas por todos os mdulos do programa, e as Locais ou Privadas somente nas rotinas onde so criadas. EXPRESSES Expresso: qualquer instruo de manipulao de dados.

As expresses podem ser:


Informtica - Lgica de Programao 8

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

ARITMTICAS: Nesse tipo de expresso s podemos utilizar operadores, constantes e variveis do tipo numrico, e o resultado ser sempre um valor numrico. Exemplo 3+2, A*B. RELACIONAIS: Nesse tipo de expresso realizamos uma comparao entre dois ou mais operandos do mesmo tipo, utilizando operadores relacionais e o resultado ser sempre um valor lgico (verdadeiro ou falso). Exemplo: 10>5, A<B. LGICAS: a unio de duas ou mais expresses relacionais utilizando operadores lgicos, e o resultado tambm ser sempre um valor lgico (verdadeiro ou falso). Exemplo: A>B E 10>5, Cidade = Canoas OU Cidade = Porto Alegre. OPERANDOS E OPERADORES OPERANDOS So os elementos que sero manipulados. Como operandos podemos utilizar: CONSTANTES: Exemplo: 15+25, 345/5, 12,35*20; VARIVEIS: Exemplo: A-B, X/Y, HT*SH; FUNES DA LINGUAGEM: Exemplo: PI()*Cos(x)+Raiz(256,2) Observaes: Linguagens aplicativas mais especficas como as Planilhas Eletrnicas e os Gerenciadores de Bancos de Dados podem utilizar como operandos as referncias a clulas (Exemplo: A3*B5) ou os campos do Banco de dados (Exemplo: Horas_Trab*Sal_Hora). OPERADORES So smbolos ou palavras que indicam o tipo de manipulao e tambm determinam de que tipo a expresso. Os operadores se dividem em trs grupos: ARITMTICOS: Adio: + Subtrao: Multiplicao: * Diviso: / Exponenciao: ^ Observao: Os operadores aritmticos mantm a mesma prioridade matemtica, ou seja: em primeiro lugar so executadas as razes e exponenciaes, logo a seguir, as multiplicaes e divises, e, por ltimo, as somas e subtraes. Em caso de empate de prioridades, o clculo efetuado sempre da esquerda para a direita. Para alterar a prioridade dos operadores, usamos parnteses.

Informtica - Lgica de Programao

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

RELACIONAIS Igualdade: = Maior do que: > Menor do que: < Maior ou igual a: >= Menor ou igual a: <= Diferente: <> Observaes: Entre os operadores relacionais no existem prioridades, sempre so executados da esquerda para a direita, medida que forem aparecendo. LGICOS (Booleanos) NAO E OU Observao: Nos operadores lgicos o E tem prioridade sobre o OU. Os operadores lgicos igualmente chamados de Booleanos utilizam a lgebra de Boole, ou lgebra Booleana, tambm denominada Tabela Verdade. O operador NAO um inversor de resultados, isto , se o resultado da expresso for verdadeiro transforma em falso e vice-versa. Exemplo: 50>30, resultado verdadeiro. NAO (50>30), resultado falso. Usando o operador E, o resultado final s ser verdadeiro se o resultado de todas as condies forem verdadeiras, qualquer outra hiptese, o resultado ser falso. Usando o operador OU, o resultado final s ser falso se o resultado de todas as condies forem falsas; qualquer outra hiptese, o resultado ser verdadeiro.

Veja o exemplo da tabela verdade abaixo: Comando de atribuio O comando de atribuio serve para colocar um valor (contedo) dentro de uma varivel. O comando de atribuio, dependendo da linguagem, pode ser: = := Exemplo: A = 15 ou A 15 ou A := 15 Em qualquer dos casos estamos colocando o valor 15 como contedo da varivel A.
Informtica - Lgica de Programao 10

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

Neste curso utilizaremos como comando de atribuio o sinal de =.

ESTRUTURAS DE CONTROLE As estruturas de controle servem para direcionar o fluxo do processamento. As estruturas de controle podem ser: ESTRUTURA SEQENCIAL A estrutura seqencial, como diz o prprio nome, uma seqncia de instrues que se sucedem uma aps a outra sem desvios ou interrupes. Este tipo de estrutura no possui palavras chaves, composta somente por linhas de comandos sucessivas e est sempre limitada pelo incio e fim do algoritmo ou pelo inicio e fim de uma outra estrutura. Exemplo: Ler o nome e duas notas de um aluno, calcular a mdia e mostrar o nome do aluno, as duas notas e a mdia calculada. VARIAVEIS NUMERICO N1, N2, M CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2,M FIM ESTRUTURA DE SELEO Devemos utilizar uma estrutura de seleo. Sempre que para executar alguma ao dependa do resultado de uma condio, isto , no que temos que fazer existe uma condicionante. Observao: Conforme o que devemos fazer, de acordo com o resultado da condio, a estrutura de seleo pode ser de trs tipos diferentes: Seleo Simples, Seleo Composta ou Seleo Mltipla.

ESTRUTURA DE SELEO SIMPLES Na estrutura de Seleo Simples, somente teremos uma ao se o resultado da condio for Verdadeiro, caso o resultado seja falso no h ao a ser executada.

Informtica - Lgica de Programao

11

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

As palavras chaves de uma estrutura de Seleo Simples so: SE <CONDIO> ENTO COMANDOS FIM_SE Exemplo: Ler o nome e duas notas de um aluno, calcular a mdia e mostrar o nome do aluno, as duas notas, a mdia calculada e as palavras Aluno Reprovado, caso a mdia seja menor do que sete. VARIAVEIS NUMERICO N1, N2, M CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2, M SE M < 7 ENTAO ESCREVER ALUNO REPROVADO FIM_SE FIM ESTRUTURA DE SELEO COMPOSTA Na estrutura de Seleo Composta, ser executado um comando ou um grupo de comandos, caso o resultado da condio seja Verdadeiro e outro comando ou outro grupo de comandos diferentes, se o resultado da condio for Falso. As palavras-chave de uma estrutura de Seleo Composta so: SE <CONDIO> ENTO COMANDOS SENAO COMANDOS FIM_SE Observao: Se o resultado da condio for Verdadeiro ser executado tudo que estiver entre as palavras ENTAO e SENAO, sendo ignorado o que tudo que estiver aps a palavra SENAO , porem se o resultado da condio for Falso, ser desprezado tudo que estiver entre as palavras ENTAO e SENAO, sendo executado apenas o que estiver entre as palavras SENAO e FIM_SE.

Informtica - Lgica de Programao

12

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

Exemplo: Ler o nome e duas notas de um aluno, calcular a mdia e mostrar o nome do aluno, as duas notas, a mdia calculada e as palavras Aluno Reprovado, caso a mdia seja menor do que sete e Aluno Aprovado em caso contrrio. VARIAVEIS NUMERICO N1, N2, M CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2,M SE M < 7 ENTAO ESCREVER ALUNO REPROVADO SENAO ESCREVER ALUNO APROVADO FIM_SE FIM ESTRUTURA DE SELEO MLTIPLA A Estrutura de Seleo Mltipla utilizada quando devemos fazer vrios testes em uma mesma varivel ou testar o valor de uma varivel dependendo do teste do valor de outra varivel. Observao: A estrutura de Seleo Mltipla pode ser construda com Estruturas de Seleo Composta encadeadas (aninhadas), ou pela estrutura Faca Caso. Utilizando Estruturas de Seleo Composta encadeada, para fazer a Seleo Mltipla podemos fazer o encadeamento das seguintes formas: Encadeamento, somente se o resultado da primeira condio for verdadeiro. SE <CONDIO> ENTO SE <CONDIO> ENTO COMANDOS SENAO COMANDOS FIM_SE SENAO COMANDOS FIM_SE Encadeamento somente se o resultado da primeira condio for falso.
Informtica - Lgica de Programao 13

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

SE <CONDIO> ENTO COMANDOS SENAO SE <CONDIO> ENTO COMANDOS SENAO COMANDOS FIM_SE FIM_SE Um encadeamento se o resultado da primeira condio seja verdadeiro, e outro encadeamento, caso o resultado da primeira condio seja falso. SELEO MLTIPLA COM ESTRUTURA DE FACA CASO: As palavras-chave da estrutura Faca Caso so:

Observao: Para a soluo do prximo exemplo, usaremos uma soluo com estrutura de Seleo Composta encadeada e outra soluo utilizando a estrutura Faca Caso. Exemplo: Ler o estado civil de uma pessoa como valor numrico, sendo que 1 corresponde a Solteiro, 2 a Casado e 3 para Outros. Testar estes valores levando-se em conta que o usurio pode digitar errado e escrever o estado civil em caracteres. SOLUO UTILIZANDO ESTRUTURA DE SELEO COMPOSTA ENCADEADA: VARIAVEIS NUMERICO EC INICIO EC = 0 ESCREVER Digite o estado civil (1 solteiro, 2 casado, 3 outros) LER EC SE EC = 1 ENTAO ESCREVER Solteiro SENAO SE EC = 2 ENTAO ESCREVER Casado SENAO SE EC = 3 ENTAO ESCREVER Outros
Informtica - Lgica de Programao 14

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

SENAO ESCREVER Valor invlido FIM_SE FIM_SE FIM_SE SOLUO UTILIZANDO ESTRUTURA DE FACA CASO: VARIAVEIS NUMERICO EC INICIO EC = 0 ESCREVER Digite o estado civil (1 solteiro, 2 casado, 3 outros) LER EC FACA CASO CASO EC = 1: ESCREVER Solteiro CASO EC = 2: ESCREVER Casado CASO EC = 3: ESCREVER Outros OUTRO_CASO: ESCREVER Valor invlido FIM_CASO ESTRUTURA DE REPETIO Uma Estrutura de Repetio deve ser usada sempre que uma rotina tenha que ser executada mais do que uma vez durante o mesmo processamento. As repeties podem ser feitas por Contador Fixo, ou seja, a rotina vai ser repetida sempre um nmero fixo de vezes. Por Flag de Resposta, onde a cada volta do lao perguntamos ao usurio se ele quer continuar ou no, se a resposta for sim rotina, segue repetindo; e se for no, a rotina termina. Ainda podemos fazer a repetio por Flag Predeterminado, isto , determinamos que quando o usurio pressionar um determinado conjunto de teclas ou um determinado valor para contedo de uma varivel, a rotina termina. Para construir a estrutura de repetio, podemos utilizar dois tipos de estruturas: a estrutura FACA ENQUANTO ou a estrutura PARA PROXIMO, sendo que a estrutura FACA ENQUANTO serve tanto para repeties por Contador Fixo como para, repeties por Flag. A estrutura de PARA PROXIMO s serve para repeties por Contador Fixo.

Informtica - Lgica de Programao

15

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

ESTRUTURA FACA ENQUANTO

Os Comandos sero executados se a condio for verdadeira e se repetir enquanto a condio no seja negada.

ESTRUTURA PARA PROXIMO As palavras chave da estrutura PARA PROXIMO so:

Neste tipo de construo a rotina sempre entra na estrutura a primeira vez, visto que no inicio da estrutura temos uma atribuio: VAR = VI (valor inicial), repete tudo que estiver dentro da estrutura at encontrar a palavra PROXIMO. Quando encontra a palavra PROXIMO, pega o valor do passo, soma na varivel de controle e faz um teste com o valor final (VF), enquanto o valor da varivel de controle no for maior do que o valor final ( VF), continua repetindo.

EXEMPLO DE REPETIO POR CONTADOR FIXO Desafio: Ler o nome do aluno e duas notas para uma turma de 15 alunos, calcular a mdia e mostrar o nome as duas notas e a mdia de cada aluno. SOLUO UTILIZANDO A ESTRUTURA FACA ENQUANTO

Informtica - Lgica de Programao

16

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

VARIAVEIS NUMERICO N1, N2, M, C CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 C=0 ESCREVER DIGITE O NOME, N1, N2 FACA ENQUANTO C < 15 LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2, M. C=C+1 FIM_ENQUANTO FIM SOLUO UTILIZANDO A ESTRUTURA PARA PROXIMO VARIAVEIS NUMERICO N1, N2, M, C CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 C=0 ESCREVER DIGITE O NOME, N1, N2 PARA C = 1 ATE 15 LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2,M PROXIMO FIM EXEMPLO DE REPETIO POR FLAG DE RESPOSTA Desafio: Ler o nome e duas notas para os diversos alunos, calcular a mdia e mostrar o nome, as duas notas e a mdia de cada aluno. Aps processar cada aluno, perguntar ao usurio se deseja continuar. Enquanto o usurio responder sim (S), o programa continua; se a resposta for no (N), o programa termina.

Informtica - Lgica de Programao

17

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

Observao: Para repeties usando como controle o Flag, s poderemos utilizar a estrutura FACA ENQUANTO. Soluo: VARIAVEIS NUMERICO N1, N2, M CARACTER NOME, CF INICIO N1 = 0 N2 = 0 M=0 CF = S ESCREVER DIGITE O NOME, N1, N2 FACA ENQUANTO CF = S LER NOME LER N1 LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2,M ESCREVER DESEJA CONTINUAR (S/N)? LER CF FIM_ENQUANTO FIM EXEMPLO DE REPETIO POR FLAG PREDETERMINADO Problema: Ler o nome e duas notas para uma turma de alunos, calcular a mdia e mostrar o nome, as duas notas e a mdia de cada aluno. O programa ir terminar quando o usurio digitar a palavra FIM, como contedo da varivel Nome, em vez de um nome vlido. Observao: Predeterminamos que quando o usurio digitar a palavra FIM no lugar do nome de um aluno, o programa ir terminar. Soluo: VARIAVEIS NUMERICO N1, N2, M CARACTER NOME INICIO N1 = 0 N2 = 0 M=0 ESCREVER DIGITE O NOME (FIM PARA SAIR), N1, N2 NOME = FACA ENQUANTO NOME <> FIM LER NOME SE NOME <> FIM LER N1
Informtica - Lgica de Programao 18

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

LER N2 M = (N1+N2)/2 ESCREVER NOME, N1, N2,M FIM_SE FIM_ENQUANTO FIM At aqui analisamos quais so as palavras-chave e como se representam os algoritmos em Pseudocdigo. Veremos a seguir como fazer a representao das estruturas de controle atravs de Fluxograma. ESTRUTURA SEQENCIAL

ESTRUTURA DE SELEO SIMPLES - SE

Informtica - Lgica de Programao

19

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

ESTRUTURA DE SELEO COMPOSTA

ESTRUTURA DE SELEO MLTIPLA

ESTRUTURA DE REPETIO

Informtica - Lgica de Programao

20

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

PROCEDIMENTOS E FUNES Programao Estruturada. A caracterstica dessa programao a utilizao de tcnicas que decompem a soluo de um problema em blocos que interagem com um bloco principal. Isso possvel por meio da tcnica de refinamentos sucessivos e da modularizao dos algoritmos. Para inserir mdulos em um algoritmo existem os comandos Procedimento e Funo. As aes de procedimento e funo esto hierarquicamente subordinadas a um algoritmo principal, geralmente, chamado de Mdulo Principal. Dentro de um procedimento ou uma funo, pode haver o chamamento de outros procedimentos ou funes DIFERENA ENTRE PROCEDIMENTO E FUNO A diferena entre Procedimento e Funo que o Procedimento executa uma tarefa e no retorna valores para o mdulo que o chamou, j a Funo tambm executa uma tarefa, mas obrigatoriamente dever retornar um resultado para o mdulo que a chamou. A chamada de um procedimento feita como uma linha de comando normal, repassando ou no parmetros (argumentos); j a chamada de uma funo sempre deve ser por atribuio a uma varivel ou por um teste condicional, tambm repassando ou no parmetros (argumentos). Parmetros (argumentos) Na tcnica de modularizao podem ser utilizados pontos de comunicao entre os mdulos. Esses pontos, chamados Parmetros, classificam-se em formais e reais.

Informtica - Lgica de Programao

21

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

PASSAGEM DE PARMETROS PASSAGEM DE PARMETROS POR VALOR Quando passamos parmetros por valor, na verdade estamos enviando uma cpia do valor original da varivel. Portanto, se no Procedimento ou Funo este valor for alterado, no modificar o contedo da varivel cujo valor foi repassado. EXEMPLOS DE PROCEDIMENTO E FUNO PROCEDIMENTO Ler o estado civil de uma pessoa como valor numrico, sendo 1 para solteiro, 2 para casado e 3 para outros. Escrever o estado civil em caracteres.
Mdulo Principal VARIAVEIS Numerico ec, e INICIO Ec = 0 Ler ec Traduz (ec) FIM Procedimento Traduz(e) INICIO SE e = 1 entao Escrever Solteiro SENAO SE e = 2 entao Escrever casado SENO SE e = 3 entao Escrever outros SENAO Escrever Invlido FIM_SE FIM_SE FIM_SE a rea. Escrever calcular FIM

FUNO Ler a base e altura de um tringulo, calculada.


Mdulo Principal VARIAVEIS Numerico base, altura, rea,a Inicio Base = 0 Altura = 0 Area = 0 Ler Base Ler Altura Area = Calc_rea (Base, Altura) Escrever rea FIM

a base, a altura e a rea

Funcao Calc_rea( INICIO a=b*h retornar a FIM

RECURSIVIDADE Os Procedimentos e as Funes, na maioria das linguagens, possuem a propriedade da recursividade, isto , a capacidade de um procedimento ou funo chamar eles mesmos.
VARIAVEIS Numerico Num, N INICIO Num= 0 Mostra(Num) FIM

PROCEDIMENTO MOSTRA(N)
INICIO N=N+2 Escrever N SE N < 10 entao Mostra(N) FIM_SE FIM

RESULTADO Temos como resultado desse processamento, os seguintes valores: 2 4 6 8 10.

Informtica - Lgica de Programao

22

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

VETORES E MATRIZES O QUE SO VETORES E MATRIZES Vetores e Matrizes, que nas linguagens de programao so chamados de Array, so variveis indexadas, isto e, em uma mesma varivel podemos armazenar diversos valores, e esses valores so identificados pelo nome da varivel e por um nmero ou mais nmeros, dependendo de quantas dimenses tem a matriz. Esse nmero ou esses nmeros so os ndices da matriz, pois indicam a posio do valor (elemento) dentro da Matriz ou do Vetor. A Matriz pode-se comparar como sendo um armrio com, por exemplo, trs gavetas. Neste caso eu posso guardar trs objetos, um em cada gaveta, porm, se em cada gaveta so feitas trs divises, podemos nesse armrio guardar no apenas trs objetos, mas, sim, nove objetos. Matriz numrico V[5]
ndice Valores 1 5 2 1 5 3 1 8 4 3 5 5 4 0

Para referenciar o valor 18, temos que indicar V[3], isto , o valor 18 o terceiro elemento do Vetor V, ou que o valor 18 encontra-se na terceira posio do vetor. EXEMPLO DE MATRIZ Matriz numrico M[3,3] ndice 1 2 3 1 20 14 60 2 15 17 54 3 30 76 10

Para referenciar o valor 76, temos que indicar M[2,3], isto , o elemento da matriz que armazena o valor 76 est na linha 2, coluna 3. A indicao do ndice ou ndices feita sempre entre colchetes [ ], ou em algumas outras linguagens ente parnteses ( ). Como o Vetor uma matriz que possui dimenso nica, temos apenas um ndice, que indica a posio que o elemento ocupa dentro do Vetor. Por exemplo: V[3]. O nmero 3 entre os colchetes indica da Posio do Elemento (local onde o valor est armazenado). Exemplo: M[2,3], o nmero 2 indica a linha, e o numero 3 indica a coluna, Posio do Elemento (local do valor armazenado).

Informtica - Lgica de Programao

23

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

ALGORITMOS PARA MANIPULAR VETORES E MATRIZES


Exemplo de Vetor: Algoritmo para ler e escrever um Vetor de nome V com cinco posies (elementos). VARIAVEIS NUMERICO AUX, I MATRIZ NUMERICO V[5] INICIO AUX = 0 PARA I = 1 ATE 5 LER AUX Exemplo de Matriz: Algoritmo para ler e escrever uma Matriz de nome M com nove posies (elementos), com trs linhas e trs colunas. VARIAVEIS NUMERICO AUX, L, C MATRIZ NUMERICO M[3,3] INCIO AUX = 0 PARA L = 1 ATE 3 PARA C = 1 ATE 3 LER AUX M[L,C] = AUX ESCREVER M[L,C] PROXIMO PROXIMO FIM

EXEMPLO DE ALGORITMO PARA ORDENAR UM VETOR Desafio: Classificar em ordem crescente um vetor A com dez elementos (dez posies)
VARIAVEIS NUMERICO N, I, J, AUX MATRIZ NUMERICO A [10] INICIO N=0 AUX = O PARA I = 1 ATE 10 LER N A [I] = N (Bloco para carregar e imprimir o vetor) ESCREVER A [I] PROXIMO PARA I = 1 ATE 9 PARA J = I+1 ATE 10 SE A [I] > A [J] ENTAO AUX = A [I] A [I] = A [J] (Bloco para ordenar o vetor) A [J] = AUX FIM_SE PROXIMO PROXIMO PARA I = 1 ATE 10 ESCREVER A [I] (Bloco para imprimir o vetor ordenado) PROXIMO FIM

EXERCCIOS COM ALGORITMOS 1) Escreva o pseudocdigo em portugus estruturado que leia trs valores em variveis distintas e armazene a soma em uma outra varivel e escreva o valor obtido. 2) Ler trs valores em variveis diferentes armazene, a soma das duas primeiras em uma nova varivel e o produto das duas ltimas em uma outra varivel e mostre o produto das duas novas variveis em uma terceira varivel. 3) Escreva o pseudocdigo em portugus estruturado e que leia trs valores em diferentes variveis e escreva o maior valor digitado.
Informtica - Lgica de Programao 24

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

4) Escreva o pseudocdigo em portugus estruturado que leia dez valores fornecidos pelo usurio e escreva os valores e seus dobros. 5) Gerar nmeros de zero a 200 variando de 5 em 5. Mostrar estes nmeros digitados e, no final, a soma deles e quantos nmeros foram gerados. 6) Fazer uma tabela de converso de polegadas para centmetros. Esta tabela dever comear em uma polegada e terminar em 10 polegadas variando de 0.5 em 0.5 de polegada. Mostrar a tabela 7) Ler 10 valores dois a dois, compar-los entre si. Mostrar cada par de nmeros, e ao lado deles a mensagem, segundo cada caso. Se forem iguais, se o maior o primeiro ou se o maior o segundo. 8) Escreva o pseudocdigo em portugus estruturado que mostre somente os nmeros pares de 0 at 100. Se este nmero for maior que 20, escreva tambm o seu quadrado. 9) Escreva o pseudocdigo em portugus estruturado que, para 20 nmeros fornecidos pelo usurio, escreva a quantidade de positivos e de negativos. 10) Escreva o pseudocdigo em portugus estruturado que mostre a tabuada de zero at 10 para um nmero fornecido pelo usurio. 11) Ler oito valores positivos. Testar cada valor, se for maior do que 100, extrair a raiz quadrada, caso contrrio, elevar ao quadrado. Mostrar os nmeros lidos e ao lado a raiz ou o quadrado. No final informar quantos nmeros pares foram digitados. 12) Uma empresa possui 15 funcionrios. Ler para cada funcionrio o seu nome, as horas trabalhadas e seu salrio hora. Calcular o salrio bruto. Mostrar o nome de cada funcionrio, as horas trabalhadas, o salrio hora e o salrio bruto. No final mostrar o total de salrios brutos. 13) Ler 20 valores dois a dois. Testar estes valores. Se o segundo for maior que o primeiro, calcular a soma deles. Se o primeiro for maior que o segundo, calcular a diferena, e, se forem iguais, multiplic-los. 14) Fazer um algoritmo que calcule as razes da equao do segundo grau usando a frmula de Bscara. Testar o discriminante, caso seja negativo, informar que impossvel no campo dos nmeros reais; caso contrrio, calcular e mostrar as razes. 15) Ler o nome, o sexo e a idade de 100 pessoas. Mostrar quantas pessoas so do sexo masculino e quantas so do sexo feminino, quantas so menores de 18 anos e quantas so maiores ou iguais a 18. 16) Ler oito valores diferentes de zero, imprimir os valores lidos e no final mostrar quantos nmeros so negativos. 17) Ler uma srie de dez nmeros, mostrar os nmeros lidos e, no final, a soma deles e quais foram o maior e o menor nmero digitado.

Informtica - Lgica de Programao

25

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

18) Ler o nome e nmero de filhos de 30 pessoas, imprimindo: a. Quantas pessoas tm de 1 a 3 filhos. b. Quantas pessoas tm de 4 a 7 filhos. c. Quantas pessoas tm 8 filhos ou mais. d. Quantas pessoas no tm filho. 19) Ler nome, idade e sexo de 40 pessoas e aps imprimir: a. Nmero de pessoas do sexo masculino. b. Nmero de pessoas do sexo feminino. c. Nmero de pessoas com idade at 30 anos. d. Nmero de pessoas com idade igual ou superior a 60 anos. 20) O proprietrio de um cinema desejou saber certo dia qual seria a sesso mais lucrativa para ele. Assim sendo, para cada um dos 100 espectadores deste dia registrou nome e sesso (tarde ou noite). Fazer um algoritmo para ler estes dados e aps informar ao proprietrio qual foi a sesso que teve mais espectadores ou se foram iguais. 21) Numa pesquisa populacional, entre outros dados, registrou-se para cada um dos 160000 recenseados o nome, sexo, idade e grau de escolaridade (0=analfabeto, 1=primrio, 2=secundrio, 3=superior, 4=ps-graduao). Como resultado da pesquisa deseja-se obter um relatrio contendo as seguintes informaes: a. Nmero de analfabetos. b. Nmero de pessoas com instruo primria. c. Nmero de pessoas com mais de 50 anos e instruo secundria. d. Nmero de pessoas com formao superior e. Nmero de homens ps-graduados. f. Nmero de mulheres ps-graduadas 22) Ler as notas e os nomes de uma turma de 30 alunos, mostrar os nomes e as notas de cada aluno e a mensagem de aprovado, se a nota for maior ou igual a 7 e reprovado, se menor que 7. No final imprimir a nota mais alta, a nota mais baixa, a mdia aritmtica da turma, quantos alunos foram aprovados e quantos foram reprovados. 23) Ler 10 valores maiores que zero. Mostrar os valores e informar se so mpares ou no. No final mostrar a soma deles, a mdia aritmtica, a soma dos pares, a soma dos mpares, o maior e o menor valor. 28) Em um certo estabelecimento selecionaram 20 pessoas com diferentes idades e para cada uma delas foram registrados, nome, idade e ms de nascimento. Aps o registro de dados, desejou-se saber: a. Idade da pessoa mais jovem; b. Nome e idade da pessoa mais idosa; c. Nmero de pessoas nascidas no ms de setembro e no ms de outubro. 24) Um fabricante de televisores deseja inteirar-se do movimento de sua produo durante um determinado perodo, para cada um dos televisores fabricados, registraram-se os seguintes dados: modelo (1, 2 ou 3), tipo preto e branco (PB) ou colorido (C), preo de custo e preo de venda. Elaborar um algoritmo para ler e imprimir estes dados, alm do lucro obtido na venda de cada televisor.

Informtica - Lgica de Programao

26

Escola Estadual de Educao Profissional [EEEP]

Ensino Mdio Integrado Educao Profissional

a. Elaborar um algoritmo para ler e imprimir estes dados, alm do lucro obtido na venda de cada televisor. b. Usar como flag 9 no modelo. c. Ao final do algoritmo dever ser impresso um segundo relatrio contendo as seguintes informaes: i. Nmero de televisores vendidos do modelo 1; ii. Nmero de televisores vendidos do modelo 2; iii. Nmero de televisores vendidos do modelo 3; iv. Nmero de televisores preto e branco vendidos; v. Nmero de televisores coloridos vendidos; vi. Lucro total obtido pela fbrica; vii. Maior preo de custo; viii. Maior preo de venda. 25) Uma empresa deseja realizar um levantamento no cadastro de seus funcionrios. Para isso, dever ser lido para cada funcionrio: nome, idade, salrio e ano de admisso; a. Ao final dever ser impresso um relatrio em que constaro os seguintes dados: i. Nome do funcionrio mais idoso; ii. Nome do funcionrio mais antigo na empresa; iii. Maior salrio na empresa. iv. Usar como flag ZZZ no nome.

Informtica - Lgica de Programao

27

Hino Nacional
Ouviram do Ipiranga as margens plcidas De um povo herico o brado retumbante, E o sol da liberdade, em raios flgidos, Brilhou no cu da ptria nesse instante. Se o penhor dessa igualdade Conseguimos conquistar com brao forte, Em teu seio, liberdade, Desafia o nosso peito a prpria morte! Ptria amada, Idolatrada, Salve! Salve! Brasil, um sonho intenso, um raio vvido De amor e de esperana terra desce, Se em teu formoso cu, risonho e lmpido, A imagem do Cruzeiro resplandece. Gigante pela prpria natureza, s belo, s forte, impvido colosso, E o teu futuro espelha essa grandeza. Terra adorada, Entre outras mil, s tu, Brasil, Ptria amada! Dos filhos deste solo s me gentil, Ptria amada,Brasil! Deitado eternamente em bero esplndido, Ao som do mar e luz do cu profundo, Fulguras, Brasil, floro da Amrica, Iluminado ao sol do Novo Mundo! Do que a terra, mais garrida, Teus risonhos, lindos campos tm mais flores; "Nossos bosques tm mais vida", "Nossa vida" no teu seio "mais amores." Ptria amada, Idolatrada, Salve! Salve! Brasil, de amor eterno seja smbolo O lbaro que ostentas estrelado, E diga o verde-louro dessa flmula - "Paz no futuro e glria no passado." Mas, se ergues da justia a clava forte, Vers que um filho teu no foge luta, Nem teme, quem te adora, a prpria morte. Terra adorada, Entre outras mil, s tu, Brasil, Ptria amada! Dos filhos deste solo s me gentil, Ptria amada, Brasil!

Hino do Estado do Cear


Poesia de Thomaz Lopes Msica de Alberto Nepomuceno Terra do sol, do amor, terra da luz! Soa o clarim que tua glria conta! Terra, o teu nome a fama aos cus remonta Em claro que seduz! Nome que brilha esplndido luzeiro Nos fulvos braos de ouro do cruzeiro! Mudem-se em flor as pedras dos caminhos! Chuvas de prata rolem das estrelas... E despertando, deslumbrada, ao v-las Ressoa a voz dos ninhos... H de florar nas rosas e nos cravos Rubros o sangue ardente dos escravos. Seja teu verbo a voz do corao, Verbo de paz e amor do Sul ao Norte! Ruja teu peito em luta contra a morte, Acordando a amplido. Peito que deu alvio a quem sofria E foi o sol iluminando o dia! Tua jangada afoita enfune o pano! Vento feliz conduza a vela ousada! Que importa que no seu barco seja um nada Na vastido do oceano, Se proa vo heris e marinheiros E vo no peito coraes guerreiros? Se, ns te amamos, em aventuras e mgoas! Porque esse cho que embebe a gua dos rios H de florar em meses, nos estios E bosques, pelas guas! Selvas e rios, serras e florestas Brotem no solo em rumorosas festas! Abra-se ao vento o teu pendo natal Sobre as revoltas guas dos teus mares! E desfraldado diga aos cus e aos mares A vitria imortal! Que foi de sangue, em guerras leais e francas, E foi na paz da cor das hstias brancas!