Notas de Aula de Algoritmos e Programação de Computadores

Documentos relacionados
I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Aulas Anteriores. Detalhes da linguagem de programação

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

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

LISTA DE EXERCÍCIOS: 1ª Unidade

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Elementos básicos das linguagens de programação

Aula Teórica 03. Comandos Condicionais (Decisão)

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Linguagem de programação: Pascal

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

Ciência da Computação

Algoritmos e Programação

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

6) ESTRUTURA DE UM PROGRAMA

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Aula 4 Introdução ao C

Algoritmos Estrutura Condicional

FACCAT Sistemas de Informação. Estruturas de Dados

LISTA DE EXERCÍCIOS O que será escrito quando os algoritmos/trechos de algoritmos abaixo forem executados (fazer no papel)?

Estruturas de controle: Estrutura de DECISÃO

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

Linguagem de Programação Pascal - Introdução

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

SSC304 Introdução à Programação Para Engenharias

Aula 8 Comandos de Seleção

Exercícios Repetição

Notas de Aula de Algoritmos e Programação de Computadores

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

Sintaxe Básica de Java Parte 2

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Comandos de desvio de fluxo. Expressões lógicas.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

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

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Aula Anterior. Decomposição algorítmica (continuação)

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Estruturas de Controle

Lista 13. Program Pzim ; var dez : array [ ] of real; i:integer; Begin //lê 10 valores for i:= 1 to 10 do readln(dez[i]); //calcula

Working 03 : Conceitos Básicos II

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Estrutura de Decisão - Case

Aula 05: Condicionais (if / else)

Estrutura de decisão

AULA TEÓRICA 03 COMANDO CONDICIONAL

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Comandos de desvio de fluxo. Expressões lógicas.

Comandos de desvio de fluxo. Expressões lógicas.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA COMANDOS DE DESVIO

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

APÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL.

In I t n rto r d o u d ç u ão ã o à à Com o pu p t u a t ç a ão ã Linguagem Fortran! " 1

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:

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

Estruturas de Controle. Estrutura de Seleção. Estrutura de Seleção

Programação Estruturada

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Seleção Múltipla Laços (while, do-while, for) AULA 05

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

Notas de Aula de Algoritmos e Programação de Computadores

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Organização de programas em Pascal

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

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Unidade 10: Estruturas de Decisão Compostas Prof. Daniel Caetano

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

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

Programação científica C++

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

Linguagem Computacional

Algoritmos e Programação

Algoritmo e Programação Matemática

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Working 03 : Conceitos Básicos II

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

Algoritmos e Programação

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

MC-102 Aula 08 Comandos Repetitivos

3.1 - Funções para manipular dados de entrada e saída padrão

Algoritmos e Programação - Engenharia da Computação -

Laços de repetição for, while, do-while

Unidade 4: Introdução à Lógica de Programação - Parte II

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Transcrição:

Notas de Aula de Algoritmos e Programação de Computadores FLÁVIO KEIDI MIYAZAWA com a colaboração de TOMASZ KOWALTOWSKI Instituto de Computação - UNICAMP Versão 2000.1

Estas notas de aula não devem ser usadas como única fonte de estudo. O aluno deve ler outros livros disponíveis na literatura. Nenhuma parte destas notas pode ser reproduzida, qualquer que seja a forma ou o meio, sem a permissão dos autores. Os autores concedem a permissão explícita para a utilização e reprodução deste material no contexto do ensino de disciplinas regulares dos cursos de graduação sob a responsabilidade do Instituto de Computação da UNICAMP. c Copyright 2000 Instituto de Computação UNICAMP Caixa Postal 6176 13083 970 Campinas SP fkm,tomasz @ic.unicamp.br ii

3 Estrutura Condicional A estrutura condicional permite a execução de instruções quando uma condição representada por uma expressão lógica é satisfeita. 3.1 Estrutura Condicional Simples if (condição) Comando; A seguir, exemplificamos o uso da estrutura condicional simples. program maximo1; var, : integer; write( Entre com o primeiro número: ); readln ; write( Entre com o segundo número: ); readln ; if writeln( O maior valor é, ); if writeln( O maior valor é, ) 3.2 Estrutura Condicional Composta Note que no exemplo do algoritmo maximo1, exatamente um dos dois comandos if s é executado, i.e., ou ou. Podemos considerar ambos os casos através de uma única condição: if (condição) Comando1 ou Bloco de Comandos1 Comando2 ou Bloco de Comandos2; true Comando1 ou Bloco de Comandos1 C false Comando2 ou Bloco de Comandos2 If (C) Then Comando1 ou Bloco de Comandos1 Else Comando2 ou Bloco de Comandos2 Figura 14: Fluxograma do comando If-Then-Else Note que depois do Comando1 ou Bloco de Comandos1 não há ; (ponto e vírgula). Caso tivesse um ponto e vírgula, este estaria separando o comando if de outro comando e portanto a palavra não seria continuação deste 24

comando if. Na figura 14 apresentamos o fluxograma do comando if, e no programa seguinte exemplificamos o uso da estrutura condicional composta. program maximo2; var, : integer; write( Entre com o primeiro número: ); readln( ); write( Entre com o segundo número: ); readln( ); if writeln( O maior é,a) writeln( O maior é,b) 3.3 Bloco de Comandos Um bloco de comandos é um conjunto de instruções que vai ser considerado como so um comando único. Desta forma, é possível compor estruturas, como no caso do comando if, envolvo mais comandos. Um bloco de comandos é definido pelas palavras e Comando1; Comando2; Comando3;. Aqui parece ser o momento para apresentar mais uma prática de programação estruturada. Sempre que um comando atuar sobre um bloco de comandos, dispomos este bloco de comandos deslocados mais a direita. Os comandos dentro de um bloco, entre e estarão alinhados e também estarão deslocados mais a direita. Isto facilita muito a visualização da atuação de cada comando. Exemplo 3.1 No programa a seguir, exemplificamos o uso dos blocos de comandos. program maximo3; var, : integer; write( Entre com o primeiro número: ); readln( ); write( Entre com o segundo número: ); readln( ); if writeln( O maior está na variável a ); writeln( O maior é,a) writeln( O maior esta na variável b ); writeln( O maior é,b) 25

Exemplo 3.2 No exemplo seguinte apresentamos um programa que lḙ os coeficientes de uma equação de segundo grau,, e (equação!#" ), e imprime as raizes desta equação (se existir). program equacaosegundograu; var $%,, : real; var '&, (, delta: real; writeln( Programa para resolver uma equação de segundo grau. ); writeln( Equação na forma: a*x*x + b*x+c = 0 ); write( Entre com o valor de a (diferente de zero): ); readln *)+ ; write( Entre com o valor de b: ); readln -,. ; write( Entre com o valor de c: ); readln */. ; 01243 )657 89 9:<;=8 >8 ; if?a@cbedf #" 01Q2R3 G&H57I F:J K LNMNOPD ) * *ST (%8U ; 01Q2R3 (V57I F:J W:XLNMNOPD ) * *ST (%8U ; writeln( O valor de x1 =,'&, e o valor de x2 =,Y( ); writeln( não é possível calcular raizes reais para esta equação ); 3.4 Comando Case O comando case é um comando que permite selecionar um conjunto de operações conforme uma expressão com resultado escalar. Neste comando o valor escalar é comparado com vários outros valores que dividem as opções de execução em casos (vamos chamar estes de valores de caso). No máximo um caso pode ser verdadeiro. Os valores de caso podem ser tanto valores escalares como faixas de valores de escalares. Além disso, todos os valores de caso devem ser disjuntos (sem interseções). Se o valor escalar é igual ao valor (ou está dentro de uma faixa) de um caso então os comandos associados a este caso são executados. As sintaxes do Exted Pascal e Borland Pascal diferem levemente. Assim, daremos a sintaxe do Borland Pascal e posteriormente explicitaremos a diferença com a sintaxe do Exted Pascal. Há duas formas para a sintaxe do comando case: A seguir apresentamos a sintaxe do caso onde não definimos comandos para o caso de não haver correspondência com os valores escalares de cada caso. case (Expressão Escalar) of Lista Constantes Escalares1: Comando ou Bloco de Comandos1; Lista Constantes Escalares2: Comando ou Bloco de Comandos2;. Lista Constantes EscalaresK: Comando ou Bloco de ComandosK; A sintaxe para a situação onde definimos comandos para o caso onde não há correspondência com os valores escalares de cada caso é apresentada a seguir: 26

case (Expressão Escalar) of Lista Constantes Escalares1: Comando ou Bloco de Comandos1; Lista Constantes Escalares2: Comando ou Bloco de Comandos2;. Lista Constantes EscalaresK: Comando ou Bloco de ComandosK; ComandoE1; ComandoE2;. ComandoEE; Cada Lista Constantes Escalares pode ser uma seqüência de escalares ou faixas de escalares separados por vírgula. A diferença com a sintaxe do padrão Exted Pascal é que em vez da palavra na sintaxe anterior, é usada a palavra otherwise. No decorrer deste texto, usaremos a sintaxe do padrão Borland Pascal. Exemplo 3.3 O seguinte programa mostra um exemplo do uso do comando case. program exemplo; var c: char; write( Entre com um caracter: ); readln(c); case c of A.. Z, a.. z : writeln( Caracter lido é letra. ); 0.. 9 : writeln( Caracter lido é dígito. ); writeln( i.e., um caracter em [0,9]. ); +, -, *, / : writeln( Caracter é um operador matemático. ); $ : writeln( Caracter é o símbolo $. ); writeln( O caracter lido não é letra, nem digito. ); writeln( nem operador matemático e nem é o símbolo $. ); 27

Exemplo 3.4 O seguinte programa mostra um exemplo de menu implementado com o comando case. Program ExemploMenu; var Opcao : char; repeat Escolha de uma opção do Menu writeln( Entre com uma opção do menu abaixo: ); writeln( [1] - Inserir dados de aluno novo no cadastro. ); writeln( [2] - Remover aluno do cadastro. ); writeln( [3] - Alterar os dados de um aluno. ); writeln( [4] - Sair do sistema de cadastro. ); write( Opcao: ); readln(opcao); writeln; case Opcao of 1 : writeln( Inserir Funcionário. ); writeln( Opção não implementada. ); 2 : writeln( Remover Funcionário. ); writeln( Opção não implementada. ); 3 : writeln( Alterar Funcionário. ); writeln( Opção não implementada. ); 4 : writeln( Fim da execução do sistema. ); writeln( Opção inválida. ); case writeln; until (Opcao 4 ); 3.5 Exercícios 1. Escreva um programa que determina a data cronologicamente maior de duas datas fornecidas pelo usuário. Cada data deve ser fornecida por três valores inteiros onde o primeiro representa um dia, o segundo um mês e o terceiro um ano. 2. Faça um programa que lê uma medida em metros e escreve esta medida em polegadas, pés, jardas e milhas. Obs.: 1 polegada 25.3995 milímetros 1 pé 12 polegadas 1 jarda 3 pés 1 milha 1760 jardas 3. Sabo que o valor numérico de uma letra na codificação ASCII é dada pela função ord, (a) faça um programa que leia uma letra e escreva a codificação em binário desta letra. Exemplo: Suponha que a letra a ser lida é a letra a. A função ord( a ) retorna o valor Z\[ e o programa deve imprimir: 01100001. Note que "%]N(_^K#&W]N(P`#&W].(Pa "=]b(.cu "=]b(pd"=]b(p "=]b(ae'#&!]n(pfjz\[. 28

(b) faça um programa que leia uma letra e escreva a codificação em hexadecimal desta letra. Exemplo: Suponha que a letra a ser lida é a letra m. A função ord( m ) retorna o valor &"\Z e o programa deve imprimir: 6D. Note que gh]a&cg e ij]a&cg f k&"\z, onde i em hexadecimal é igual a &Cl em decimal. Obs.: a função ord sobre um caracter devolve um número entre " e (_m_m (que pode ser representado em 8 dígitos binários ou 2 dígitos hexadecimais). 29