Programação Procedimental

Documentos relacionados
Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Noções de algoritmos - Aula 1

LINGUAGEM ALGORÍTMICA

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

Programação de Computadores III

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Aula 4 Estruturas Condicionais

Programação de Computadores:

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

Oficina de Python Prof. Me. José Carlos Perini

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Programação Estruturada

Exercícios Repetição

Introdução à Lógica de Programação Aula 2. Adaptação de Luis Otavio Alvares

Noções de algoritmos - Aula 1

CONCEITOS DE ALGORITMOS

LISTA DE EXERCÍCIOS. 2) Explique a diferença entre algoritmo computacional e não computacional.

Programação de Computadores III

Programação II. Victor Amorim dos Santos

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Introdução a Lógica de Programação

Introdução a programação Comandos de repetição

Oficina de Python Prof. Me. José Carlos Perini

Estruturas de Repetição

Algoritmos e Programação

Programação Estruturada Aula VisualG

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Algoritmos - 5. Alexandre Diehl. Departamento de Física - UFPel

Introdução a Algoritmos - Revisão

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Comandos em C (cont.)

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Exercícios: Comandos de Repetição

TÉCNICO DE INFORMÁTICA - SISTEMAS

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

Algoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel

CCO 016 / COM 110 Fundamentos de Programação

Programação de Redes de Computadores

Aula 5 Controle do Fluxo de Execução

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Fluxogramas e variáveis

Algoritmos e estrutura de dados I. Profa. Lara Popov Z. B. Oberderfer

Estruturas de Seleção Seleção Simples e Composta (parte 1)

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Estruturas de Decisão e Estruturas de Repetição

Estruturas de Repetição. João Medeiros FATERN

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Introdução a Computação

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Estruturas de Controle de Fluxo

Programação de Computadores Profa Jacqueline 1

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

Introdução à Algoritmos INF 1005 e INF Programação I

CURSO BÁSICO DE PROGRAMAÇÃO AULA 5. Revisão Laços de Repetição

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Estrutura de decisão

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

Estruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha

Linguagem C Estruturas de Repetição

Informática Aplicada I Lista: Fluxograma

7 Comandos e Estruturas de Controle

Algoritmos e Programação

Algoritmos I Aula 10 Estrutura de controle: repetição

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Estruturas de Controle de Fluxo

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Universidade Veiga de Almeida Algoritmos e Linguagem I

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

Informática Fundamentos em C++ Revisão 1

Algoritmos: Estruturas de Controle

E X E R C Í C I O S 01. Sobre o comando CASO, marque as alternativas como verdadeira (V) ou falsa (F):

AEDI Fundamentos Revisão 1

Transcrição:

Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos é necessário utilizar um método sistemático de programação que permita a obtenção de programas corretos, confiáveis, flexíveis e eficientes. Os passos a seguir estabelecem uma metodologia de programação: a) Análise do problema. b) Projeto do programa: algoritmo e estruturas de dados. c) Codificação em linguagem de programação e teste do programa. d) Manutenção e atualização do programa. Um algoritmo é uma sequência finita de instruções básicas, definidas sem ambiguidade e executáveis em tempo finito. A execução desta sequência resolve um problema computacional, definido a partir de uma estratégia definida na análise do problema. Um algoritmo pode ser descrito através de uma linguagem algorítmica (pseudocódigo) ou fluxograma. No fluxograma, cada operação básica é representada por um desenho, e em linguagem algorítmica cada operação básica é escrita em linguagem próxima à linguagem natural, considerando-se algumas regras comuns às linguagens de programação. Um algoritmo pode ser implementado em qualquer linguagem de programação e essa implementação pode ser trivial, como uma simples transcrição de operações básicas, ou complexa, dependendo das características da linguagem de programação escolhida e dos tipos de dados nela definidos. Do ponto de vista lógico, um algoritmo é constituído por três estruturas lógicas: sequencial: quando diversos comandos devem ser executados numa sequência linear. seletiva: quando a ação a ser executada depende de uma inspeção ou teste. repetitiva: quando um conjunto de ações deve ser executado repetidamente enquanto uma determinada condição permanecer válida. A descrição de um algoritmo se baseia em estruturas lógicas que organizam as instruções que o compõem. Além disso, deve ser especificada a sua função, quais são os dados de entrada e/ou saída. Por exemplo, o Algoritmo 1 descreve o problema de calcular a soma entre dois números. Todos os algoritmos são descritos por funções, sendo que a função básica (denominada Principal) é sempre a primeira a ser executada. A função Principal é seguida de parênteses, que delimitam uma lista de argumentos, que são informações que a função necessita para que possa executar a tarefa associada. Neste caso a função Principal não possui argumentos de entrada. 1.2 Comandos em Linguagem Algorítmica Uma seqüência de comandos válidos da linguagem forma um bloco de instruções. Os comandos válidos devem estar separados pelo símbolo ";". 1

Algoritmo 1 - Adição de dois números Objetivo: Dados dois números, calcular e retornar a sua soma. Variáveis: A, B, RESULTADO: inteiro leia(a, B); RESULT ADO A + B; imprima(resu LT ADO); 1.2.1 Comando de atribuição Uma atribuição é indicada pelo operador. A expressão do lado direito do operador é calculada e o resultado é armazenado na variável ao lado esquerdo. Por exemplo: x 50/y; z p 3.2 + q; 1.2.2 Leitura dos valores de entrada do algoritmo: O comando leia deve ser utilizado para que uma variável possa ter um valor associado, a partir de uma leitura do teclado. O mesmo comando pode ser utilizado para uma lista de variáveis, neste caso os valores são lidos um de cada vez e atribuídos às variáveis de acordo com a posição das mesmas na lista. Exemplos: leia nota1, nota2; leia x, y, z; 1.2.3 Impressão dos resultados do algoritmo: O comando imprima deve ser utilizado para a impressão de mensagens ou de valores calculados ou obtidos pelo algoritmo. A impressão dos resultados pode também ser mesclada com uma mensagem explicativa. Os valores são impressos, um a um, na ordem em que aparecem na lista. Exemplos: imprima bom dia ; imprima x1, x2, x3; imprima a + b/c; imprima O resultado e, m + n; 1.2.4 Comandos de seleção: Os comandos de seleção permitem selecionar quais comandos serão executados dependendo de uma condição. Os comandos de seleção uni e bidirecional têm o seguinte formato: se <condição> então se <condição> então <bloco1> senão <bloco2> O comando se-então avalia a condição, que pode resultar em Verdadeiro ou Falso. Se a condição é verdadeira, o bloco de comandos será executado, senão este bloco é descartado. O comando se-então-senão define dois blocos de instruções, um para cada caso. 2

Algoritmo 2 - Maior entre dois números Objetivo: Dados dois números, retornar o maior. Variáveis: A, B, max: inteiro leia (A, B); se A > B; então max A; senão max B; imprima maior =, max 1.2.5 Comandos de repetição: Os comandos de repetição podem definir iterações controladas por variáveis ou com controle lógico. O comando repita para utiliza variável de controle e é representado por: repita para i de 1 até n em que bloco é uma sequência de uma ou mais instruções. No exemplo a seguir, o bloco de instruções entre os comandos repita para e é executado repetidamente de acordo com a variável controladora. repita para i 1 até 10 imprima i, i i; O comando repita pode ser utilizado para a impressão de uma sequência de números, como no algoritmo: Algoritmo 3 - Imprimir sequência de 10 números Objetivo: Dado um número, imprimir a sequência dos 10 próximos números. Variáveis: a,i: inteiro leia (a); repita para i 1 até 10 imprima a; a a + 1; O comando repita enquanto utiliza um teste lógico e é representado por: repita enquanto <condição> faça O bloco de instruções entre os comandos repita enquanto e é executado enquanto a condição definida por uma expressão lógica for satisfeita. Exemplo: 3

i 1 repita enquanto i <= 10 imprima i, i i; i i + i; O comando repita até executa pelo menos uma vez o bloco a ser repetido, uma vez que a condição é testada apenas após a sua execução. A expressão a seguir representa o comando repita até: repita até que <condição> A condição a ser testada deve estar associada a variáveis que sejam atualizadas no interior do bloco. Caso isso não ocorra, o programa ficará repetindo indefinidamente o bloco de comandos. Exemplo: leia a; repita t a a; imprima a, t; leia a; até que a <= 0 1.3 Exemplos de Algoritmos 1. Algoritmo de Euclides: Dados dois números positivos m e n encontre seu maior divisor comum, isto é o maior inteiro positivo que divide tanto m como n. Assuma que m é sempre maior que n, e n diferente de zero. principal () início leia m, n; r = m % n; // resto da divisão de m por n repita enquanto r!= 0 m = n; n = r; r = m % n; imprima n; fim 2. Multiplicação de dois números inteiros positivos. principal () início leia m, n; r = 0; repita enquanto n!= 0 r = r + m; n = n-1; imprima r; fim 4

1.4 Exercícios 1. Escreva um algoritmo que leia três números e imprima o maior deles. 2. Escreva um algoritmo que leia três números e os imprima em ordem crescente. 3. Escreva um algoritmo que leia uma certa quantidade de números e imprima o maior deles e quantas vezes o maior número foi lido. A quantidade de números a serem lidos deve ser fornecida pelo usuário. Assuma que o usuário sempre fornecerá um número positivo. 4. Escreva um algoritmo que leia um número inteiro entre 100 e 999 e imprima na saída cada um dos algarismos que compõem o número. 5. Uma empresa paga RS30.00 por hora normal trabalhada e RS45.00 por hora extra. Escreva um programa que leia o total de horas normais e o total de horas extras trabalhadas por um empregado em um ano e calcule o salário médio mensal e o salário anual deste trabalhador. Referências [1] Salvetti, D. D., Barbosa M. B. Algoritmos, Makron Books, 1993. 5