Universidade Paulista - Unip

2011

2

Programação de computadores

3

Introdução Um computador é simplesmente uma máquina que executa ordens. Assim, para que ele apresente a solução de um problema, é necessário que execute um programa, o qual fará com que se obtenha a solução. Como uma definição preliminar, pode-se dizer que programar um computador consiste na elaboração de uma sequência de instruções, de forma que, ao ser executada, o computador obtenha a solução de um determinado problema. Esta sequência de instruções é chamada de algoritmo. Por exemplo, deseja-se calcular a média das duas notas obtida por um aluno do curso de Engenharia em uma determinada disciplina. Sabemos que para este cálculo, basta somarmos as notas e dividirmos o resultado por dois. Mas como deveríamos proceder ao recorrer à programação? Neste caso precisamos montar um algoritmo que acesse as duas notas do aluno. Estes valores (a primeira e a segunda nota) são denominados de Entradas. A média calculada será o resultado deste problema e apresentado ao usuário, a Saída. Assim, para cada problema considerado, temos os valores que acessaremos e os resultados apresentados, ou seja, as entradas e as saídas. Para que o computador calcule a média das notas deste aluno, este precisa primeiro acessar estas notas. Mas como este processo se realiza? Primeiramente, entenda o computador como uma máquina que saiba:  Ler;  Escrever;  Efetuar operações aritméticas básicas: adição, subtração, multiplicação e divisão. Portando, para resolvermos o nosso problema de cálculo da média do aluno, utilizaremos exatamente estas funções básicas:
inicio leia leia NOTA_1 NOTA_2

MEDIA <- (NOTA_1 + NOTA_2)/2 escreva fim MEDIA

Observe que o exemplo acima tem um inicio e um fim. Estes comandos indicam, respectivamente, o início e o fim do corpo lógico do algoritmo, onde estarão contidos todos os comandos executados pelo computador.

os valores gerados durante a execução do algoritmo ou mesmo os valores que representam a solução do problema. . Por exemplo: Ficha de inscrição Nome: João Carneiro Idade: 22 Salário (R$): 1200. conforme determina a instrução. ou seja. vários tipos de informações são utilizados. A instrução: MEDIA <. O mesmo processo ocorre quando a instrução leia NOTA_2 é executada.00 Sexo: M Neste caso. na posição de memória MEDIA. respectivamente. O resultado final deve ser armazenado na posição de memória MEDIA. some-as e divida o resultado por 2. Observe que nesta instrução utilizamos os caracteres µ+¶ e µ/¶ para representar as operações adição e divisão. Este valor digitado é então lido pelo computador e armazenado na posição de memória denominada NOTA_1. Estes dados podem ser os valores apresentados pelo problema. Com a execução da instrução: escreva MEDIA o valor armazenado na posição de memória MEDIA será copiado e mostrado na tela. Note que ³João Carneiro´ (o nome do indivíduo) é uma informação diferente de ³22´ (a idade deste indivíduo).4 A execução da instrução: leia NOTA_1 faz com que o computador fique aguardando até o usuário digite um valor. Tipos de dados Um algoritmo pode manipular vários tipos de dados. Já o símbolo µ<-¶ é usado para indicar que o resultado da expressão à direita deve ser armazenado na posição de memória especificada à esquerda.(NOTA_1 + NOTA_2)/2 faz com que o computador copie os valores contidos nas posições de memória NOTA_1 e NOTA_2.

.  Lógico: toda informação que assume apenas dois valores: verdadeiro e falso.  Caractere: toda informação que possui somente um caractere alfanumérico. Vamos assumir.  Exercícios: 1. etc. ( ) -678 ( ) ³0. tais como 4<7 (verdadeiro) ou ³o Sol gira em torno da Terra´ (falso). etc.2.6. número de páginas de um livro. %. nulos ou positivos). Indique com um X quais dos tipos de dados abaixo é do tipo Inteiro. 9) ou de uma letra (a.00). salário. que tais dados devem ser sempre apresentados entre aspas (³João Carneiro´. Vamos assumir que tais dados devem ser sempre apresentados entre aspas (³M´. Por exemplo.  Real: toda informação numérica que pertença ao conjunto dos números reais (valores que podem ser fracionados. ou seja. tais como #.56 2. a média das notas dos alunos de uma sala de aula. altura. novamente. nulo ou positivo)..  Literal: toda informação composta por um conjunto de caracteres alfanuméricos e/ou especiais. ³$´.. São utilizados na representação do valor de uma expressão lógica ou um sentença. Indique com um X quais dos tipos de dados abaixo é do tipo Real. idade. número de filhos por casal. sendo negativos.35´ ( ) verdadeiro ( ) -456 ( ) -99. z).. número de alunos na sala de aula. pode ser composto de um número (0. $.Programação de computadores 5 Assim como.00´ (o salário deste indivíduo). -1. entre outros. ³F´.8 ( ) ³cinco´ ( ) 45.87´ ( ) ³-9. ?.. .8976 ( ) falso . ³ ´). Um dado tipo caractere também pode armazenar caracteres especiais. ³M´ (o sexo do indivíduo) é uma informação diferente de ³1200. @. Portanto podemos concluir que informações manipuladas dentro de um algoritmo podem ser classificadas em vários tipos de dados.. ³10´. b. ( ) 1000 ( ) ³0´ ( ) ³-90´ ( ) verdadeiro ( ) -436 ( ) 34 ( ) ³casa 8´ ( ) 0 ( ) -1. ³Rua Araújo Leite 13-35´). Por exemplo. São eles:  Inteiro: toda informação numérica que pertença ao conjunto dos números inteiros (negativo. 1200. Vamos assumir que tais dados serão sempre representados utilizando-se o ponto decimal (3.. .

Indique com um X quais dos tipos de dados abaixo é do tipo Lógico.35´ ( ) verdadeiro ( ) -456 ( ) -99. ( ) -678 ( ) ³0.87´ ( ) ³-9. Indique com um X quais dos tipos de dados abaixo é do tipo Literal.8976 ( ) falso .8 ( ) ³cinco´ ( ) 45.8 ( ) ³cinco´ ( ) 45.87´ ( ) ³-9.6 3.35´ ( ) verdadeiro ( ) -456 ( ) -99. ( ) -678 ( ) ³0.8976 ( ) falso 4.

Se outro valor for atribuído à posição. Cada variável utilizada em um algoritmo deverá ser declarada (definida) de um determinado tipo. acentos ou caracteres especiais nos nomes das variáveis. Assinale com um X os nomes válidos para uma variável. Desta forma. ( ) ENDEREÇO ( ) 21BRASIL ( ) FONE$COM ( ) NOMEUSUÁRIO ( ) NOME_USUÁRIO ( ) NOME*USUARIO ( ) END*A-6 ( ) CIDADE3 ( ) #CABEC . de acordo com o tipo de dado que irá armazenar. Vamos assumir aqui as regras da linguagem C:  O nome de uma variável pode ser composto por letras. Cont e CONT são três variáveis distintas nesta linguagem.Programação de computadores 7 Variáveis Uma posição de memória sempre armazena um determinado valor.  Na linguagem C. uma variável definida como sendo do tipo inteiro só poderá receber dados do tipo inteiro. sendo que o primeiro caractere deve ser sempre uma letra ou o ³_´. Por isso denominamos esta posição de memória de variável. Assim. números e o caractere sublinhado ( _ ). letras maiúsculas e minúsculas são tratadas como diferentes. Faremos da seguinte maneira: <nome_da_variável> : <tipo_da_variável> como. por exemplo: NOME IDADE SEXO : literal : inteiro : caractere SALARIO : real  Exercícios: 1.  Nunca use espaço em branco. Cada linguagem de programação tem suas próprias regras para formação do nome de uma variável. cont. Assim o conteúdo de uma posição de memória pode variar durante a execução de um algoritmo. então o valor anterior será descartado.

4 C <. normalmente. São eles: Operador + * / div mod ** Significado Adição Subtração Multiplicação Divisão real Divisão inteira Resto da divisão inteira Exponenciação Exemplo A + B A ± B A * B A / B A div B A mod B A ** B Tipo de dados Reais e/ou inteiros Reais e/ou inteiros Reais e/ou inteiros Reais e/ou inteiros Inteiros Inteiros Reais e/ou inteiros Vejamos o exemplo a seguir: programa Exemplo variaveis A.<constante> <variável> <. D. SOBRA C. são apresentados alguns exemplos de atribuições possíveis: Atribuições possíveis <variável> <.A/B // // // // este comando faz a divisão real do conteúdo da variável A pelo conteúdo da variável B.(NOTA_1 + NOTA_2)/2 Operadores aritméticos Utilizamos os operadores aritméticos para o cálculo de expressões matemáticas.NOTA_2 MEDIA <. A variável C armazena o resultado desta divisão.<expressão> Exemplo NOTA_1 <. Na tabela a seguir. ou seja.<variável> <variável> <.22 B <. F : real inicio A <. B. Existem outros símbolos para representar a atribuição. para armazenar um determinado conteúdo em uma variável. representada por uma seta apontando para a esquerda (<-). 5.5 NOTA_1 <.8 Comando de atribuição A atribuição é uma notação utilizada para atribuir um valor a uma variável. ou seja. É.5 // armazena o valor 22 na variável A : inteiro . dependendo da linguagem de programação.

4b O comando para calcular esta expressão é: .0 fim Expressões matemáticas e fórmulas Dentro de uma expressão numérica podem aparecer vários operadores aritméticos. Quando aparecem duas ou mais operações de mesma hierarquia. As operações serão executadas de acordo com a seguinte ordem: 1º 2º 3º 4º o que estiver entre parênteses. SOBRA <-A mod B // // // // // // // // // F <. Por exemplo. este comando apresenta o resto da divisão inteira do conteúdo da variável A pelo conteúdo da variável B.Programação de computadores 9 D <.0 à potência do valor armazenado pela variável B.2. adição ou subtração. estas são executadas na ordem em que aparecem na expressão. A variável f armazena então o valor 16. multiplicação. exponenciação. A v ariável sobra armazena então o valor 2. divisão inteira ou resto da divisão inteira. A variável D armazena então o valor 5. considere a expressão: 2a  3 3  c  2.A div B // // // // este comando faz a divisão inteira do conteúdo da variável A pelo conteúdo da variável B. divisão real.0 ** B este comando eleva o valor 2. da esquerda para a direita.

2 * a  3 .

Neste caso. as operações serão executadas na seguinte ordem: 1º 2º 2*a (2 * a + 3) .4  b  c * *3  2. de acordo com a hierarquia. no cálculo do valor desta expressão.

10 VALOR_A <. X : inteiro B <.7.C div 4 A.0 : inteiro .0 A <. Em cada linha do algoritmo abaixo.6. Considere o seguinte trecho de algoritmo: programa Exercicio_3 variaveis VALOR_A.5.C + 1 A <. 31 div 4 d. forneça os valores armazenados em cada uma das variáveis após a execução de cada comando.4 inicio C <. programa Exercicio_2 variaveis X <.4.-4 I <.C mod 2 C. X : real PIG.B + 2 B <. 12 / 3 * 2 ± 5 c. I inicio VARI <. Quais os valores das expressões a seguir: a.10 3º 4º 5º 6º 7º (4 ± b) c ** 3 divisão do resultado de 2º com o resultado de 3º adição do resultado de 5º com o resultado de 4º subtração do resultado de 6º com 2  Exercícios: 1. TOTAL. 31 mod 4 2.0 A <.2 TOTAL <. VARI.A/2 fim C <. 2 + 3 * 6 b. A.11 3.80 X <. B : real C <.

PIG * VALOR_A + X 4.I div pig A <. b  b  b 3  4ac  2a 2  4a b. escreva os comandos para calcular o valor de x das fórmulas a seguir. Use a divisão real.TOTAL / VARI X <.X + 1 A <. x ! a  c d  2a . c e d como variáveis. x ! 2a a.10 A <.A + I PIG <.Programação de computadores 11 Diga quais os valores armazenados em cada uma das variáveis após a execução de cada um dos comandos a seguir: X <. Considerando a.A + I mod 6 VALOR_A <. b.

Q mod W Q <.R + 1 R <.0 R <.b  1 2 3 c 5.10 Q <. W. Diga qual é o valor armazenado em cada variável após a execução de cada um dos comandos do algoritmo a seguir: programa Exercicio_5 variaveis EX inicio Q <. R .2 * Q / W R <.-1 W <.W + Q Q <.R + 1 fim : real : inteiro Q.Q + 30 W <.W div (Q + 40) EX <.

diga qual o valor lógico de cada uma das expressões a seguir: NOME APELIDO QQUER AUX RESP K KAROL ³ANA´ ³flor´ ³ana´ 10 FALSO 3 2 a. São eles: Operador > >= < <= = <> Significado Maior que Maior ou igual a Menor que Menor ou igual a Igual a Diferente de Exemplo Idade > 18 x >= 2 Nota < 7 Y <= 10 Nome = ³João Carneiro´ Sexo <> ³F´ Operadores lógicos Expressam operações lógicas. Avaliam o relacionamento entre duas expressões e retornam o resultado 1 se verdadeiro ou 0 se falso. duas sentenças A e B. c. d.12 Operadores relacionais Expressam operações de relação. NOME = APELIDO (NOME = QQUER) e (NOME <> ³ANa´) NOME = ³NOME´ (K >= KAROL + 1) ou (QQUER = ³ana´) . Usados normalmente com expressões que retornam verdadeiro ou falso (1 ou 0). por exemplo. Operador e ou não Significado Conjunção Disjunção Negação Exemplo (A = B) e (B = C) (A = B) ou (B = C) não A Considere. Vejamos quais são os valores retornados ao usarmos estes operadores lógicos: A Verdadeiro Verdadeiro Falso Falso B Verdadeiro Falso Verdadeiro Falso AeB Verdadeiro Falso Falso Falso A ou B Verdadeiro Verdadeiro Verdadeiro Falso não A Falso Falso Verdadeiro Verdadeiro  Exercícios: 1. Considerando o conteúdo das variáveis abaixo. para fins de testes em declarações condicionais. b.

5. K > KAROL + (K ± KAROL) i. ³noite´ e ³frio´ e que existe uma variável lógica L cujo valor é falso. (³dia´= D) ou (E = ³frio´) c. C. não RESP f. e ((RESP) ou (APELIDO = ((não RESP e RESP) ou (não RESP)) e (RESP ou (não RESP)) 2. B. (B = A * C) e L ou verdadeiro b. a. (AUX <= AUX / K + K) ³flor´)) h. (não RESP) e (K < AUX) g. L e (B div A >= C) ou não(A <= C) . D e E contêm respectivamente 2. Determine os resultados obtidos na avaliação das expressões lógicas seguintes.Programação de computadores 13 e. 3. sabendo que A. 7.

Este algoritmo está representado nos diagramas de blocos a seguir: . Para que haja a aprovação destes alunos. Esta técnica permite uma posterior codificação. O algoritmo básico que resolve este problema é: calcular a média das duas notas e determinar a aprovação. Diagramas de blocos e fluxogramas Um diagrama de blocos. praticamente em qualquer linguagem de programação. ou seja. vamos considerar novamente o problema de uma escola qualquer no qual o cálculo da média semestral é realizado por duas notas bimestrais que determinam a aprovação ou reprovação de seus alunos no semestre. Determinar a aprovação e apresentá-la. suas médias devem ser maiores ou iguais a sete. Facilita na preparação de um programa. pois na elaboração do fluxograma não se atinge um detalhamento de instruções ou comandos específicos.14 Algoritmo. Início Calcular a média das 2 notas e determinar a aprovação Fim A segunda etapa apresenta um detalhamento no que se refere à entrada e saída de dados. os quais caracterizam uma linguagem. pois demonstra a linha de raciocínio lógico do programador. estabelece a sequência de operações a se efetuar em um programa. Efetuar o cálculo da média. 1º 2º 3º Acessar as duas notas bimestrais. Como um primeiro exemplo. O diagrama abaixo representa este algoritmo. também denominado fluxograma.

Se a média for maior ou igual a sete. a condição de aprovação (média maior ou igual a sete) deve ser considerada no algoritmo: 1º 2º 3º Acessar as duas notas bimestrais. Assim sendo. uma condição envolve uma decisão a ser tomada segundo um determinado resultado. Efetuar o cálculo da média. Para ser possível determinar algo é necessário estabelecer uma condição. Caso contrário. apresente a aprovação. Desta forma. Este algoritmo está representado nos diagramas de blocos abaixo: Início Início Duas representações do mesmo problema Entrada das 2 notas Entrada das 2 notas Calcular a média Calcular a média Média >= 7 V ³APROVADO´ F ³ REPROVADO´ Fim Média >= 7 V F ³REPROVADO´ ³ APROVADO´ Fim Fim .Programação de computadores 15 Início Entrada das 2 notas Calcular a média e determinar a aprovação Apresentar se houver ou não aprovação Fim A terceira etapa consiste em trabalhar o termo ³determinar a aprovação´. a média. apresente a reprovação. neste caso.

gravação e outros.16 Muitas vezes é preferível construir o fluxograma trabalhando com as variáveis que serão utilizadas. Entrada de dados ± utilizado para ler os dados necessários ao programa fora de linha sem intervenção de dispositivos mecânicos. dependendo do resultado de comparação e de acordo com situações variáveis. Início Duas representações do mesmo problema Início N1. indicando a possibilidade de desvios para diversos outros pontos do fluxo. N2 N1. Serve exclusivamente para conectar os símbolos ou blocos existentes. Processamento ± símbolo que se utiliza para indicar cálculos (algoritmos) a efetuar. Entrada e saída de dados ± símbolo em função de um dispositivo qualquer de entrada ou saída de dados. . atribuições de valores ou qualquer manipulação de dados que tenha um bloco específico para sua descrição. Seta de fluxo de dados ± permite indicar o sentido do fluxo de dados. como fornecedor de informações para processamento. Cada símbolo tem um significado: Terminal ± símbolo usado como ponto para indicar o início e/ou fim do fluxo de um programa. Decisão ± indica a decisão que deve ser tomada. N2 Mn N1  N 2 2 Mn N1  N 2 2 M >= 7 V ³APROVADO´ F ³REPROVADO´ Fim M >= 7 V F ³REPROVADO´ ³APROVADO´ Fim Fim Nos fluxogramas acima alguns símbolos geométricos foram utilizados.

é apresentado o exemplo anterior neste tipo de estrutura. bom como na elaboração de uma chave que modificará a execução de um determinado programa. Abaixo.Programação de computadores 17 Preparação ± refere a um determinado grupo de operações não incluídas na diagramação. criação e desenvolvimento de uma linguagem computacional e sua documentação. Esta técnica baseia-se em uma linguagem de projeto de programação que tem como finalidade mostrar uma notação para elaboração de algoritmos os quais serão utilizados na definição. N2.³REPROVADO´ fim_se : real : literal . é colocada uma letra ou número dentro do símbolo de conexão para identificar os pares de ligação. é colocada uma letra ou número dentro do símbolo de conexão para identificar os pares de ligação. Conector ± utilizado quando é preciso particionar o diagrama. Quando ocorrer mais de uma partição. Mas existe outra. também conhecida como português estruturado.³APROVADO´ senão RESULTADO <.(N1 + N2)/2 se (MEDIA >= 7) então RESULTADO <. Algoritmo em português estruturado O fluxograma (diagrama de bloco) é a primeira forma de notação gráfica. MEDIA RESULTADO inicio leia N1. a qual é uma técnica narrativa denominada pseudocódigo. Conector fora de página ± utilizado quando é preciso particionar o diagrama em mais de uma página. N2 MEDIA <. Quando ocorrer mais de uma partição. programa Media variaveis N1.

3. Suponha que você foi ao supermercado e comprou: N quilos de café. O produto deles. Para ler dois valores reais do teclado. O quociente entre eles. B quilos de banana. b. . c. tem nome. N2 escreva ³Média: ´. cujo custo unitário é Q. 2. L litros de leite. Calcular e apresentar o valor do volume de uma lata de óleo. cujo custo unitário é T. calcular e imprimir na tela: a.  Exercícios: Desenvolva os algoritmos. MEDIA escreva ³Resultado: ´. A soma destes valores. vol o volume. Para cada artigo. preço e preço com desconto de cada artigo. diagramas de blocos e codificação em português estruturado dos seguintes exercícios: 1. cujo custo unitário é P. RESULTADO fim Obs. sendo F a temperatura em Fahrenheit (a fórmula de conversão é F ! 5 Fahrenheit e C a temperatura em Centígrados). N1 escreva ³Nota 2: ´. 4. Faça um algoritmo que imprima nome. utilizando a fórmula: vol ! T ™ r 2 ™ h . 5. Desenvolver a lógica de um programa que efetue o cálculo da área de uma circunferência e apresente este resultado. Sendo. -se preço e percentual de desconto. Imprima também o total a pagar. Uma pessoa comprou dois artigos em uma loja.: o fluxograma (diagrama de blocos) e o pseudocódigo (português estruturado) são duas técnicas importantes para a documentação da solução de um problema computacional.18 escreva ³Nota 1: ´. r o raio e h a altura da lata. 6. Ler uma temperatura em graus Centígrados e apresentá-la convertida em graus 9C  160 .

Programação de computadores 19 Faça um algoritmo que imprima: nome do produto. 8. o tempo gasto na viagem. o usuário deverá fornecer o tempo gasto da viagem e a velocidade média durante a mesma. a partir dos anos. efetuar a troca dos valores de forma que a variável A passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A. 9. Ler dois valores para as variáveis A e B. 10. Calcular a quantidade de dinheiro gasta por um fumante. Ler dois números inteiros. o nº de cigarros fumados por dia e o preço de uma carteira. Dados: o número de anos que ele fuma. Considere que um mês tenha 30 dias. a distância percorrida e a quantidade de litros utilizada nesta viagem. e imprimir o quociente e o resto da divisão inteira entre eles. O algoritmo deverá apresentar como resultado os valores da velocidade média. x e y. Escreva um algoritmo que determine o número de dias que uma pessoa já viveu. Para realizar esse cálculo. total gasto com cada produto e o total gasto no mercado. 7. 11. . meses e dias fornecidos pelo usuário. Construa um algoritmo que calcula a quantidade de litros de combustível gastos em uma viagem utilizando-se um automóvel que faz 12 Km por litro. Apresentar os valores trocados.

que podem ser denominados A e B.. as instruções existentes entre o comando se..então. o desvio condicional simples: se. B variaveis A. obtendo o valor da soma X. X : real inicio leia A. se a condição for falsa. Caso contrário.então... ou seja. considere o seguinte problema: ³Ler dois valores numéricos.fim_se) em diagrama de blocos e em português estruturado é apresentado a seguir: F V Instruções executadas quando condição verdadeira Condição se <condição> então <instrução para condição verdadeira> fim_se <instrução para condição falsa ou após ser verdadeira> Instruções executadas quando a condição for falsa ou após ser verdadeira Como exemplo.. B X <. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio programa Soma_numeros A.20 Desvios condicionais  Desvio condicional simples (comando if) Para solucionar alguns problemas propostos será necessário trabalhar uma nova instrução... Se a condição for verdadeira. O algoritmo para resolver este problema é: 1º 2º 3º Conhecer os dois valores numéricos. Esta instrução tem por finalidade tomar uma decisão. caso X > 10.então e o comando fim_se serão executadas. Apresentar o valor da soma contido na variável X. B. estas instruções serão desconsideradas.. efetuar a adição e apresentar seu resultado caso o valor somado seja maior que 10´.. A estrutura do desvio condicional simples (se.A + B F X >10 V escreva X fim_se fim Fim .A + B se (X > 10) então X X <. Assim.fim_se.. Efetuar a soma dos valores numéricos A e B.

apresentar X . as instruções existentes entre o comando se.então e o comando senão serão executadas. Caso o valor somado seja maior ou igual a 10. ou seja.. para solucionar alguns problemas propostos será necessário trabalhar outra instrução. se a condição for verdadeira. Os passos para resolver este problema são: 1º 2º 3º Conhecer os dois valores numéricos... Verificar se X é maior ou igual a 10.A + B F X-7 X >=10 V X+5 se (X >= 10) então escreva (X + 5) senão escreva (X ± 7) fim_se fim Fim .Programação de computadores 21  Desvio condicional composto (comando if them else) Novamente. o desvio condicional composto: se. se a condição for falsa. B. o valor somado deve ser apresentado subtraído do valor 7´. efetuar a adição. obtendo o valor da soma X.7. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio programa Teste_soma_numeros variaveis A. Caso sim. Efetuar a soma dos valores numéricos A e B. senão. Assim. Caso não. B X <.fim_se. X inicio : real A.. este deverá ser apresentado somando-se a ele o valor 5.. B X <. mostrar X + 5.. Caso contrário.. que podem ser denominados A e B.então. considere o seguinte problema: ³Ler dois valores numéricos. Caso contrário. se <condição> então F Condição V senão <instrução para condição verdadeira> Instruções executadas quando condição falsa Instruções executadas quando condição verdadeira <instrução para con dição falsa> fim_se Como exemplo.. serão executadas as instruções existentes entre o comando senão e o comando fim_se.A + B leia A. Nesta instrução.

Este menu deverá dar ao usuário a possibilidade de escolher uma entre quatro operações aritméticas. Os passos para resolver este problema são: 1º Apresentar um menu de seleção com cinco opções: 1 ± Adição 2 ± Subtração 3 ± Multiplicação 4 ± Divisão Ao ser selecionado um valor. a rotina da operação solicitada deverá ser executada. deverá ser exibido o resultado´. Finalizar o programa. Ler dois valores.. seja <valor n> faça <instruções n> VAR = VLR n V Instruções n senão <instruções > fim_caso F Instruções Como exemplo. Apresentar o resultado da operação. poderá ser simplificada com a utilização da instrução: caso. 3º 4º 5º 6º ... seja esta uma após a outra ou mesmo encadeadas. Efetuar a operação escolhida com os valores lidos no item 3º. obtido no item 4º. VAR = VLR1 V Instruções 1 caso <variável> VAR = VLR2 V seja <valor 1> faça <instruções 1> Instruções 2 seja <valor 2> faça <instruções 2> . Escolhida a opção desejada. processada a operação.fim_caso.22  Estrutura de controle com múltipla escolha (comando caso fim_caso) Quando houver a necessidade de se construir um programa em que seja necessário utilizar uma sequência grande de instruções do tipo se. 2º correspondendo aos passos 4º e 5º.. considere o seguinte problema: ³Criar um programa calculadora que apresente um menu de seleções no programa principal. deverá ser solicitada a entrada de dois números e.

B R F OP = ³3´ V R <.B OP escreva R seja ³3´ então R <. R OP inicio escreva ³1 ± Adição´ escreva ³2 ± Subtração´ escreva ³3 ± Multiplicação´ escreva ³4 ± Divisão´ escreva ³Escolha uma opção: ´ leia OP escreva ³Digite o primeiro valor: ´ leia A Inicio : real : caractere escreva ³Digite o segundo valor: ´ leia B caso OP ³Menu: 1 ± Adição 2 ± Subtração 3 ± Multiplicação 4 ± Divisão´ seja ³1´ então R <.A * B R F OP = ³4´ V R <.A + B escreva R seja ³2´ então R <.Programação de computadores 23 Assim. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: programa Calculadora variaveis A.A * B escreva R seja ³4´ então R A. B.A / B escreva R senão escreva ³Opção inválida´ fim_caso fim F OP = ³2´ V R <.A + B R <.A / B R F ³Opção inválida´ Fim . B OP = ³1´ V R <.A .A .

(A + B )* D senão X <.(A . Ler quatro valores referentes a quatro notas esco lares de um aluno e imprimir uma mensagem dizendo que o aluno foi aprovado se o valor da média escolar for maior ou igual a cinco. Resposta: se (A > 2) ou não(B < 7) então X <. Resposta: se não(D > 5) então X <. Se o aluno não foi aprovado. B = 3. Ler 4 números inteiros e calcular a soma dos que forem par. Indique a saída dos trechos de programa em português estruturado mostrado abaixo.(A + 2 )* (B . o programa deverá apresentar o módulo de um número fornecido. b. diagramas de blocos e codificação em português estruturado dos seguintes problemas: a.2) c. . d.A + B .A . Para as entradas.2 senão X <. ou seja.(A + B)/ D * (C + D) se (A > 2) e (B < 7) então X <. Efetuar os algoritmos.24  Exercícios: 1. c. Ler dois valores numéricos e apresentar a diferença do maior pelo menor. C = 5 e D = 9. Resposta: b. considere os seguintes valores: A = 2. e. a. Apresentar junto das mensagens o valor da média do aluno para qualquer condição.B )/ C fim_se escreva X fim_se escreva X senão X <. Ler 3 números reais do teclado e verificar se o primeiro é maior que a soma dos outros dois. Efetuar a leitura de um valor inteiro positivo ou negativo e apresentar o número lido como sendo um valor positivo.B fim_se escreva X 2. indicar uma mensagem informando esta condição.

B e C) e apresentá-los em ordem crescente. apresentado as duas raízes.Y) está dentro de um círculo ou não. h. B e C) e efetuar o cálculo da equação de segundo grau. g.  raio do círculo. dizer seu tipo (equilátero. Crie um algoritmo que determine se um ponto (X.  ponto a ser testado. Construa um algoritmo que leia o salário de 3 pessoas. . Ler três valores do teclado e dizer se eles formam um triângulo. Efetuar a leitura de três valores (variáveis A. i. Caso afirmativo. isósceles ou escaleno). O programa deverá imprimir na tela mensagens perguntado ao usuário os dados necessários e a seguir permitir que este os digite. Para tanto o programa deverá ler os seguintes dados de teclado:  coordenadas do centro do círculo. escreva o maior valor e a diferença percentual para o menor valor. Efetuar a leitura de três valores (variáveis A. se para os valores informados for possível efetuar o referido cálculo.Programação de computadores 25 f. j.

neste problema.. O algoritmo para resolver o problema acima é: 1º 2º Criar uma variável para servir como contador com valor inicial 1.fim_enquanto..26 Estruturas de repetição Existem situações em que. Para tanto. 3º 4º . multiplicar este valor por três obtendo a variável de resposta R e apresentar o valor obtido. para se obter a solução do problema. implicando o resultado em R.. verificando se é permitido executar ou re-executar este trecho de instruções ³subordinado´ a este looping. Condição N enquanto <condição> faça <instrução para condição verdadeira> fim_enquanto S Instruções executadas enquanto condição verdadeira Como um primeiro exemplo.. repetindo esta sequência por cinco vezes´. Observe que. as instruções contidas no looping são ignoradas.fim_enquanto. 5º e 6º. Esta estrutura tem seu funcionamento controlado por decisão. é necessário fazer com que um grupo de instruções seja executado várias vezes. Se a condição for falsa logo no início. As estruturas de repetição caracterizam-se por efetuar um teste lógico no início ou no final de um conjunto de instruções. processar os passos 3º. Enquanto o valor do contador for menor ou igual a 5. o processamento da rotina é desviado para fora do looping..faça. 4º. No momento em que a condição se tornar falsa.. um trecho do programa será executado cinco vezes.faça.. Efetuar a multiplicação do valor de X por 3. o programa deve controlar o número de vezes que a rotina desejada deverá ser executada. Assim.  Comando enquanto (while) A estrutura em questão possui a estrutura enquanto. considere o problema: ³Pedir a leitura de um valor para a variável X. deverá ser utilizado um contador controlado pela instrução enquanto. Sendo assim poderá executar um determinado conjunto de instruções enquanto a condição verificada for verdadeira.. Ler um valor para a variável X. Este contador será uma variável inteira definida com valor inicial 1 logo antes de iniciar o looping e somada de uma unidade a cada repetição deste looping.

Efetuar a multiplicação do valor de X por 3. processar os passos 3º. Ler um valor para a variável X.Cont + 1 fim Fim Para ilustrar de forma um pouco diferente. encerrar o processamento do looping.3*X escreva R R R <.1 enquanto (CONT <= 5) faça leia X R <. Perguntar se o usuário deseja continuar. em vez de possuir dentro da rotina um contador de vezes. Assim. definida no processo 1º. encerrar o processo. 4º. implicando o resultado em R. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio programa Loopoing_1 Cont <-1 variaveis CONT : inteiro : real Cont <=5 F inicio X. 5º e 6º. Desta forma. Acrescentar 1 à variável do tipo contador. Quando a resposta for diferente de sim. Enquanto a resposta for sim.CONT + 1 fim_enquanto Cont <.3*X CONT <. Quando o contador for maior que 5. . R V X CONT <. imagine que o problema anterior deverá ser executado enquanto o usuário queira. Apresentar o valor calculado contido na variável R. pode-se possuir uma instrução pedindo ao usuário que informe se deseja continuar ou não.Programação de computadores 27 5º 6º 7º Apresentar o valor calculado contido na variável R. Os passos para resolver este novo problema são: 1º 2º 3º 4º 5º 6º 7º Criar uma variável para ser utilizada como resposta.

de.fim_para. Porém existe outra possibilidade de facilitar o uso de contadores finitos...³sim´ enquanto (RESP = ³sim´) ou(RESP=³s´) faça leia X R <. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio Resp <. sem fazer uso desta estrutura. incremento para <variável> de <início> até <fim> passo <incremento> faça <instruções > Instruções fim_para . Esta estrutura tem seu funcionamento controlado por uma variável contador.³sim´ programa Loopoing_2 variaveis RESP X.. Sendo assim..28 Assim... Var = início.3*X escreva R R R <. fim...passo..faça. poderá executar um determinado conjunto de instruções um determinado número de vezes.3*X escreva ³Deseja continuar?´ leia RESP fim_enquanto fim ³Deseja continuar?´ Resp Fim  Comando para (for) Vimos uma forma de elaborar um looping usando a estrutura do comando enquanto para contadores finitos. R inicio : literal : real Resp = ³sim´ ou Resp = ³s´ F V X RESP <..até. Os loopings que possuem um número finito de execuções poderão ser processados através de instruções para.

repetindo esta sequência por cinco vezes´.3*X R Fim  Comando repita (repeat) Caracteriza-se por uma estrutura que efetua um teste lógico no fim de um looping. Apresentar o valor calculado contido na variável R. 5. repita Instruções <instruções > F Condição até_que <condição> V .Programação de computadores 29 Como exemplo. multiplicar este valor por três obtendo a variável de resposta R e apresentar o valor obtido. Repetir os passos 2º. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio programa Loopoing_3 variaveis CONT X. 1 X R <. R inicio para CONT de 1 até 5 passo 1 faça leia X R <. sendo conseguida com a utilização do conjunto de instruções repita.. A estrutura em questão tem o seu funcionamento controlado por decisão. Os passos para resolver o problema acima são: 1º 2º 3º 4º 5º Definir um contador variando de 1 a 5. considere o mesmo problema anterior: ³Pedir a leitura de um valor para a variável X..3*X escreva R fim_para fim : inteiro : real Cont = 1. implicando o resultado em R. Efetuar a multiplicação do valor de X por 3. porém irá efetuar a execução de um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição estabelecida. Ler um valor para a variável X.até_que. parecida com a estrutura enquanto. 3º e 4º até que o contador seja encerrado. Esta estrutura é denominada repita. Assim.

Acrescentar um ao contador. Efetuar a multiplicação do valor de X por 3. Assim. O algoritmo para resolver este problema é: 1º 2º 3º 4º 5º 6º Criar uma variável contador. implicando o resultado em R.3*X R Cont <. Neste caso. Ler um valor para a variável X. vamos continuar com o problema: ³Pedir a leitura de um valor para a variável X. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: programa Loopoing_4 Inicio variaveis CONT : inteiro : real X. R inicio CONT <. Ler um valor para a variável X . repetindo esta sequência por cinco vezes´. . recorreremos novamente à vontade do usuário para continuar o processamento. 3º. Efetuar a multiplicação do valor de X por 3. Repetir os passos 2º.1 repita leia X R <. Apresentar o valor calculado contido na variável R. 4º e 5º até que o contador seja maior que 5. Apresentar o valor calculado contido na variável R. multiplicar este valor por três obtendo a variável de resposta R e apresentar o valor obtido.30 Como exemplo.CONT + 1 Cont <-1 X R <. implicando o resultado em R.Cont + 1 F Cont > 5 V Fim até_que (CONT < 5) fim A seguir é apresentado o exemplo em que não se utiliza o contador como forma de controle de execução de vezes de uma rotina em uma estrutura de repetição.3*X escreva R CONT <. Os passos para resolver este problema são: 1º 2º 3º 4º Criar uma variável para ser utilizada como resposta.

³sim´ X R <. o diagrama de blocos e a codificação em português estruturado ficam da seguinte maneira: Inicio programa Loopoing_5 Resp <. Desenvolva os algoritmos. Usar na resolução dos problemas a estrutura de repetição do tipo enquanto. diagramas de blocos e codificação em português estruturado dos problemas abaixo. Assim. a.Programação de computadores 31 5º 6º Perguntar se o usuário deseja continuar. Repetir os passos 2º. 4º e 5º até que a resposta seja não.³sim´ variaveis RESP : literal : real X. Apresentar os resultados de uma tabuada de um número qualquer. R inicio RESP <.3*X repita leia X R <. Esta deverá ser impressa no seguinte formato (considerando como exemplo o número 2): 2x1=2 2x2=4 2x3=6 .3*X escreva R R ³Deseja continuar?´ escreva ³Deseja continuar?´ leia RESP até_que (RESP = ³não´) ou (RESP = ³n´) ou (RESP = ³nao´) fim Resp F Resp = ³não´ ou Resp = ³n´ ou Resp = ³nao´ V Fim  Exercícios: 1. 3º.

35. ou seja.. Desenvolva os algoritmos. Faça um algoritmo que escreva todos os números múltiplos de 7 entre 1 e N. Deverá ser apresentado observando a seguinte definição: 30 = 1 31 = 3 32 = 9 33 = 27 (. Usar na resolução dos problemas a estrutura de repetição do tipo para.32 2x4=8 (.) 315 = 14348907 e.. 28. Elaborar um programa que apresente o valor de uma potência de uma base qualquer elevada a um expoente qualquer. escrevendo a menor idade e a quantidade de pessoas que possuem essa idade (a menor). Escreva um algoritmo que leia a idade de 20 pessoas. Usar na resolução dos problemas a estrutura de repetição do tipo repita. 3. sendo N um valor introduzido pelo utilizador.. 21. 4. Desenvolva os algoritmos. d. de NM. diagramas de blocos e codificação em português estruturado dos itens a até e do exercício 1. diagramas de blocos e codificação em português estruturado dos itens a até e do exercício 1. 6.. 5. + 97 + 98 + 99 + 100).. Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. 2. Por exemplos: 7. c. 14. .. e elevado a um é ele próprio. Apresentar o total da soma obtida dos cem primeiros números inteiros (1 + 2 + 3 + 4 + 5 + . Deve ser considerado que qualquer número elevado a zero é 1. Apresentar as potências de 3 variando de 0 a 15.) 2 x 10 = 20 b. Construa um algoritmo para entrar com um número de 1 a 10 e imprimi-lo o número de vezes correspondente ao seu valor.

C. Érica. OLIVEIRA. BORATTI. Projeto de algoritmos com implementações em Pascal e C 2ª ed. I.Programação de computadores 33 Bibliografia CARBONI. Introdução à Programação: Algoritmos. SCHILDT H. Visual Books. ARAÚJO. F. Thomson . I. Pioneira. SENNE. N. F. ISBN: . A. 4ª edição. A. 1ª edição. E. OLIVEIRA. 2009. L. J. Visual Books. Prentice Hall Brasil. Primeiro curso de programação em C 3ª ed. Makron Books. L. FORBELLONE. N.. J. Thomson. Lógica da Programação: a construção de algoritmos e estruturas de dados. H. 9788575022450 MANZANO. C: Completo e Total. Lógica de Programação. 3ª ed. 2003. F. A. Algoritmos: lógica para desenvolvimento de programação. Algoritmos: fundamento e prática. 3ª edição. . E. 1997. 2007. 2004. EBERSPÄCHER. G. ZIVIANI. F. 2005. 2007. 2004. 3ª edição. 1ª ed.. Visual Books.

Sign up to vote on this title
UsefulNot useful