ALGORITMOS E ESTRUTURAS DE DADOS I (Parte 1)

Documentos relacionados
ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Essa estrutura de repetição é utilizada quando se sabe o número de vezes que um trecho do algoritmo deve ser repetido.

Capítulo 1 Conceitos Básicos

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

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

ESTRUTURA CONDICIONAL E SELEÇÃO

1 ESTRUTURA SEQUENCIAL

ALGORITMOS E ESTRUTURAS DE DADOS I

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

ALGORITMOS E ESTRUTURAS DE DADOS I

Algoritmos e Programação

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Introdução aos Algoritmos

Introdução aos Algoritmos

ALGORITMOS AULA 1. Profª Amanda Gondim

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

#Conceituação. Algoritmos. Eliezio Soares

1 INTRODUÇÃO AOS ALGORITMOS

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

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

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos e Estruturas de Dados

Introdução ao Conceito de Algoritmo e Programação Estruturada

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Algoritmos e Programação

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Programação Estruturada Aula VisualG

Desenvolvimento de Algoritmos. Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

É neste ponto que entra o conceito de lógica de programação.

Algoritmos e Programação

I - CONCEITOS INICIAIS

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.

Algoritmos Estrutura Condicional

CONCEITOS DE ALGORITMOS

Algoritmos e Programação

Algoritmos e Programação

INTRODUÇÃO À PROGRAMAÇÃO. Introdução à Algoritmos. Prof. Me. Sérgio Carlos Portari Júnior

Noções de algoritmos - Aula 1

Prof. Jorge Cavalcanti

Algoritmos e Programação de Computadores Disciplina:

Técnicas de Programação

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Pseudocódigo e Visualg

Conceitos Básicos de Algoritmos

Algoritmos e Programação

Algoritmos e Programação

Sintática: como é escrito cada elemento da linguagem de programação.

Algoritmo e Programação Matemática

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Programação Estruturada

Computação I: Representações de Algoritmos

ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES I. Trabalho 1 (T1)

Projeto de Algoritmos

Portugol. Tiago Alves de Oliveira

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

1 - INTRODUÇÃO. Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação. (ASCENCIO;CAMPOS, 2007)

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

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:

Programação Procedimental

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Exercícios: comandos condicionais

Algoritmos e Técnicas de Programação

Português Estruturado

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica

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..

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

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

CAPÍTULO 3 INSTRUÇÕES BÁSICAS

Algoritmos e Lógica de Programação. Notas de Aula

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Exercícios Repetição

ALGORITMOS AULA 2. Profª Amanda Gondim

Conceitos básicos de algoritmos

Lógica de Programação I

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

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

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian

LINGUAGEM ALGORÍTMICA

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

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

CAPÍTULO V. Estruturas de Repetição CAPÍTULO V ESTRUTURAS DE REPETIÇÃO. Estrutura de Repetição com Teste no Início: E QUA TO-FAÇA...

Parte I - Expressões lógicas e operadores

Lista de Exercícios Estrutura de Repetição

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

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

Transcrição:

ALGORITMOS E ESTRUTURAS DE DADOS I (Parte 1) Prof. Eduardo Machado Real Conteúdos: Introdução aos algoritmos Estrutura Sequencial Estrutura Condicional Estruturas de Repetição

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 2 1 - INTRODUÇÃO Desde o início de sua existência, o homem procurou criar máquinas que o auxiliassem em seu trabalho, diminuindo esforço e economizando tempo. Dentre essas máquinas, o computador vem se mostrando uma das mais versáteis, rápidas e seguras. O computador pode auxiliá-lo em qualquer tarefa. É consciente, trabalhador, possui muita energia, mas não tem iniciativa, nenhuma independência, não é criativo nem inteligente, por isso precisa receber instruções nos mínimos detalhes. A finalidade de um computador é receber, manipular e armazenar dados. Visto somente como um gabinete composto de circuitos eletrônicos, cabos e fontes de alimentação, certamente ele parece não ter nenhuma utilidade. O computador só consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções, por meio de programas. Portanto, sua finalidade principal é realizar a tarefa de processamento de dados, isto é, receber dados por um dispositivo de entrada (por exemplo, teclado, mouse, scanner, entre outros), realizar operações com esses dados e gerar uma resposta que será expressa em um dispositivo de saída (por exemplo, impressora, monitor de vídeo, entre outros). Portanto, um computador possui duas partes diferentes que trabalham juntas: o hardware, composto pelas partes físicas, e o software, composto pelos programas. Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa ou vários programas interligados. No entanto, para que o computador compreenda e execute esse programa, devemos escrevê-lo usando uma linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem é chamada de linguagem de programação. As etapas para o desenvolvimento de um programa são: Análise Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída. Algoritmo Ferramentas do tipo descrição narrativa, fluxograma ou português estruturado são utilizadas para descrever o problema com suas soluções. Codificação O algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar. Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação. 2 - NOÇÕES DE LÓGICA A palavra lógica relaciona-se com a idéia de racionalidade e coerência. Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma das três cargas que são: um lobo, um bode e um maço de alfafas. Observe as leis naturais: o lobo é carnívoro e o bode é herbívoro. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas. O Homem leva o bode da margem 1 para a margem 2. O Homem navega da margem 2 para a margem 1. O Homem leva o lobo da margem 1 para a margem 2. O Homem leva o bode da margem 2 para a margem 1. O Homem leva a alfafa da margem 1 para a margem 2. O Homem navega da margem 2 para a margem 1. O Homem leva o bode da margem 1 para a margem 2. Algumas definições: o "a lógica é a arte de bem pensar" o "a lógica é a ciência das formas do pensamento" o "a lógica nos ensina a colocar ordem no pensamento"

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 3 o Nova Andradina é uma cidade do estado de Mato Grosso do Sul. o Asdrúbal nasceu em Nova Andradina. o Portanto, Asdrúbal é Sul-matogrossense. A lógica no dia-a-dia o Quando queremos escrever, falar ou agir corretamente, precisamos colocar ordem no pensamento, isto é, utilizar a lógica. o Exemplo 1: O guarda-roupa está fechado. O terno está dentro do guarda-roupa. Preciso primeiro abrir o guarda-roupa, para depois pegar o terno. A lógica de programação o Em que consiste? A lógica de programação consiste no uso correto das leis do pensamento, da "ordem da razão", de processos de raciocínio e de simbolização formal na programação de computadores. o Qual o objetivo? Permitir a resolução de problemas específicos com soluções de boa qualidade. o O raciocínio lógico pode ser expresso através de várias linguagens: no contexto humano - utiliza-se a palavra escrita/falada que, por sua vez, se baseia num determinado idioma, mas, independente do idioma, tem-se o mesmo raciocínio. no contexto computacional - utilizam-se as linguagens de programação o Vamos utilizar uma forma de representação mais genérica (livre de detalhes computacionais) e que traduza mais fielmente o raciocínio da lógica de programação: ALGORITMOS o Então... O objetivo da lógica de programação é a construção de algoritmos corretos e válidos. Veja os exemplos... Deseja-se escrever um algoritmo, usando português coloquial, para resolver um problema bastante simples, qual seja: trocar uma lâmpada queimada por uma lâmpada nova não queimada e o outro para fazer um sanduíche de queijo. Exemplo1: Trocar uma lâmpada queimada Algoritmo 1.1 - Trocar uma lâmpada queimada pegar uma escada; posicionar a escada debaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada queimada; colocar lâmpada nova; Reexaminando o algoritmo 1.1, notamos que ele tem um objetivo bem definido: trocar uma lâmpada queimada. Porém o algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva). Algoritmo 1.2 - Trocar uma lâmpada queimada (uso de teste condicional) pegar uma escada; posicionar a escada debaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada queimada;

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 4 colocar lâmpada nova; se a lâmpada nova não acender, então: o retirar a lâmpada queimada; o colocar lâmpada nova; o se a lâmpada nova não acender, então: retirar a lâmpada queimada; colocar a lâmpada nova; se a lâmpada nova não acender, então: retirar a lâmpada queimada;... até quando???? colocar a lâmpada nova; O Algoritmo 1.2 não está terminado. As ações cessarão quando conseguirmos colocar uma lâmpada que acenda (objetivo do algoritmo). Ao invés de reescrevermos várias vezes um conjunto de ações podemos, alterar o fluxo seqüencial de execução para permitir que ações sejam re-executadas quantas vezes forem necessárias. Precisamos expressar essa repetição (estrutura de repetição) garantindo uma condição de parada. Algoritmo 1.3 - Trocar uma lâmpada queimada (uso de estruturas de repetição) pegar uma escada; posicionar a escada debaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada queimada; colocar lâmpada nova; enquanto lâmpada nova não acender, faça retirar a lâmpada queimada; colocar lâmpada nova; Exemplo 2: Fazer um sanduíche de queijo (com queijo fatiado) Pegar a faca Pegar o pão Cortar o pão Colocar a faca na mesa Pegar a fatia de queijo Abrir o pão Colocar a fatia de queijo no pão (com queijo não fatiado) Pegar a faca Pegar o pão Cortar o pão Cortar uma fatia de queijo Colocar a faca na mesa Pegar a fatia de queijo Abrir o pão Colocar a fatia de queijo no pão (para qualquer um dos casos acima:) Enquanto tiver pão e queijo Pegar a faca

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 5 Pegar o pão Cortar o pão Se o queijo estiver fatiado então Colocar a faca na mesa Pegar a fatia de queijo Senão Cortar uma fatia de queijo Colocar a faca na mesa Pegar a fatia de queijo Abrir o pão Colocar a fatia de queijo no pão 3 CONCEITO DE ALGORITMO E ESTRUTURAS DE DADOS À especificação da seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo. A seguir alguns conceitos de algoritmos segundo autores da nossa bibliografia: Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999) Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância. (SALVETTI, 1999) Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas. (MANZANO, 1997) Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações. (FARRER, 1999) Informalmente, um algoritmo é qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída. Portanto, um algoritmo é uma sequência de passos computacionais que transformam a entrada na saída. (CORMEN, 2002) Também podemos visualizar um algoritmo como uma ferramenta para resolver um problema computacional bem especificado. O enunciado do problema especifica em termos gerais o relacionamento entre a entrada e a saída desejada. O algoritmo descreve um procedimento computacional específico para se alcançar esse relacionamento da entrada com a saída. Uma estruturas de dados é um meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. (CORMEN, 2002) Na Ciência da Computação, uma estrutura de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente. (WIKIPÉDIA, 2010). Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 6 3.1 Método para a construção de qualquer algoritmo Para a construção de qualquer tipo de algoritmo, é necessário seguir estes passos: Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. Definir os dados de saída, ou seja, quais dados serão gerados. Definir os dados de entrada, ou seja, quais dados serão fornecidos. Construir o algoritmo utilizando um dos tipos. Compreender completamente o problema a ser resolvido, destacando os objetos que o compõem. Testar o algoritmo realizando simulações. 4 TIPOS DE ALGORITMOS Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma e pseudocódigo ou portugol. 4.1 Descrição narrativa A descrição narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidos para sua resolução. Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua natural, neste ponto, já é bem conhecida. Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição desse algoritmo para programa. Algoritmo para somar três números Receber os três números. (passo1) Somar os três números. (passo2) Mostrar o resultado obtido. (passo 3) 4.2 - Fluxograma O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos predefinidos, os passos a serem seguidos para sua resolução. Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de textos. Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição para um programa. Símbolos utilizados:

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 7 Algoritmo para multiplicar dois números 4.3 - Pseudocódigo ou Portugol O Pseudocódigo ou Portugol é o tipo que utilizaremos para as soluções dos exercícios das nossas aulas e consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos s serem seguidos para sua resolução. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas. Desvantagem: é necessário aprender as regras do pseudocódigo. Algoritmo para dividir dois números algoritmo dividir declaração de variáveis inteiro numero1,numero2; início escreva( Digite o primeiro número: ); leia(numero1); escreva( Digite o segundo número: ); leia(numero2); se(numero2 = 0) então escreva( Impossível dividir ); fim se senão resultado numero1/numero2; escreva( A divisão é:, resultado); fim senão fim_algoritmo

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 8 Exercícios: 1 Faça um algoritmo em descrição narrativa para: a) Ir para a escola (ou universidade). b) Sacar dinheiro no caixa eletrônico. 2 Faça um algoritmo em fluxograma para mostrar o resultado da divisão de dois números. 5 CONCEITO DE VARIÁVEL Um algoritmo, e posteriormente, um programa, recebem dados, que precisam ser armazenados no computador para serem utilizados no processamento. Esse armazenamento é feito na memória. Assim, uma variável representa uma posição de memória. Possui nome e tipo e seu conteúdo pode variar ao longo do tempo, durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. 6 TIPOS DE DADOS Definem os tipos de informações a serem processadas. Os tipos de dados mais utilizados são: numéricos e literais ou caracteres. Numéricos: inteiros e reais Inteiros podem ser positivos ou negativos e não possuem parte fracionária. 15 irmãos, -2 graus. Real - podem ser positivos ou negativos e possuem parte fracionária. 1.73 de altura, 3.5 litros. Literais ou Caracteres São dados formados por um único caractere ou por uma cadeia de caracteres. Esses caracteres podem ser as letras e os números (não podem ser usados para cálculos). aluno, 12345. 7 FORMAÇÃO DE IDENTIFICADORES Os identificadores são os nomes das variáveis, dos programas, das constantes, das rotinas etc. As regras básicas são: Os caracteres que você pode utilizar são: os números, as letras maiúsculas, as letras minúsculas e o caractere sublinhado. O primeiro caractere deve ser sempre uma letra ou caractere sublinhado. Não são permitidos espaços em branco e caracteres especiais (@,$,+,-,%,!). Não podemos usar palavras reservadas nos identificadores, ou seja, palavras que pertençam a uma linguagem de programação.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 9 Exemplos: Válidos A a nota numero_1 x4 Não válidos 5b por começar com número E 39 por conter espaço em branco Case por ser palavra reservada Exercício: defina os identificadores abaixo se são válidos ou não válidos, neste caso justifique: a) dia b) prova 2 c) idade_1 d) 4y 8 ESTRUTURA SEQUENCIAL algoritmo Nome_do_algoritmo declaração de variáveis variáveis inicio bloco de comandos; fim_algoritmo 8.1 Declaração de variáveis As variáveis são declaradas após a palavra declaração de variáveis e os tipos mais utilizados são: numérico (inteiro ou real) e literal (caracteres). inteiro x; real y; literal i; 8.2 Comando de atribuição O comando de atribuição é utilizado para conceder valores ou operações a variáveis, sendo representado pelo símbolo. x 4; y 2.5; i A ; 8.3 Comando de Entrada O comando de entrada é utilizado para receber dados digitados pelo usuário, que serão armazenados em variáveis. Esse comando é representado pela palavra leia. leia(x); Um valor digitado pelo usuário será armazenado na variável x.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 10 8.4 Comando de saída O comando de saída é utilizado para mostrar dados na tela. Esse comando é representado pela palavra escreva, e os dados podem ser conteúdos de variáveis ou mensagens. escreva(x); Mostra o valor armazenado na variável x. escreva( Conteúdo de Y:,y); Mostra a mensagem Conteúdo de Y: e em seguida o valor armazenado na variável y. Exercício resolvido: 1 Faça um algoritmo que receba dois números inteiros, calcule e mostre a soma desses números. algoritmo Somar declaração de variáveis inteiro num1,num2,soma; início escreva( Digite o número 1: ); leia(num1); escreva( Digite o número 2: ); leia(num2); soma num1+num2; escreva( Resultado:,soma); fim_algoritmo Exercícios: 1 Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada. 2 Faça um programa que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário. 3 O custo ao consumidor de um carro novo é a soma do preço de fábrica com o percentual de lucro do distribuidor e dos impostos aplicados ao preço de fábrica. Faça um programa que receba o preço de fábrica de um veículo, o percentual de lucro do distribuidor e o percentual de impostos, calcule e mostre: a) o valor correspondente ao lucro do distribuidor; b) o valor correspondente aos impostos; c) o preço final do veículo. 4 Faça um programa que calcule e mostre a área de um triângulo. Sabe-se que: A=(base*altura)/2. 5 Faça um programa que calcule e mostre a área de um círculo. Sabe-se que:. 6 Faça um programa que receba um número positivo e maior que zero, calcule e mostre: a) o número digitado ao quadrado; b) o número digitado ao cubo; c) a raiz quadrada do número digitado; 7 Faça um programa que receba a medida do ângulo formado por uma escada apoiada no chão e encostada na parede e a altura da parede onde está a ponta da escada, calcule e mostre a medida desta escada.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 11 8 Uma pessoa deseja pregar um quadro em uma parede. Faça um programa para calcular e mostrar a que distância a escada deve estar da parede. A pessoa deve fornecer o tamanho da escada e a altura em que deseja pregar o quadro. Lembre-se de que o tamanho da escada deve ser maior que a altura que se deseja alcançar. X Altura em que deseja pregar o quadro Y Distância em que deverá ficar a escada Z Tamanho da escada 9 - Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a receber, sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e paga imposto de 7% sobre este salário. 10 Sabe-se que o quilowatt de energia custa um quinto do salário mínimo. Faça um programa que receba o valor do salário mínimo e a quantidade de quilowatts consumida por uma residência, calcule e mostre: a) o valor de cada quilowatt; b) o valor a ser pago por essa residência; c) o valor a ser pago com desconto de 15%. 9 ESTRUTURA CONDICIONAL Este tipo de estrutura é utilizada para representar o desvio no fluxo normal de um programa, ou seja, utilizada para indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios. O teste lógico segue a seguinte estrutura (ou fluxo): 9.1 Estrutura Condicional Simples

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 12 se(condição) então comando; O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso. se(condição) então início comando1; comando2; comando3; fim se Os comandos 1, 2 e 3 só serão executados se a condição for verdadeira. As palavras início e fim se serão necessárias apenas quando dois ou mais comandos forem executados. 9.2 - Estrutura Condicional Composta se(condição) então comando1; senão comando2; Se a condição for verdadeira, será executado o comando1; caso contrário, será executado o comando2. se(condição) então início comando1; comando2; fim se senão início comando3; comando4; fim senão Se a condição for verdadeira, o comando1 e o comando2 serão executados, caso contrário, o comando3 e o comando4 serão executados.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 13 9.3 Operadores Condicionais ou Relacionais Os operadores condicionais ou relacionais são operadores binários que devolvem os valores lógicos verdadeiro e falso. Sinal Função = Igual!= Diferente > Maior que >= Maior que ou igual a < Menor que <= Menor que ou igual a Estes valores são somente usados quando se deseja efetuar comparações. Comparações só podem ser feitas entre objetos de mesma natureza, isto é variáveis do mesmo tipo de dado. O resultado de uma comparação é sempre um valor lógico 9.4 Operadores Lógicos Os operadores lógicos ou booleanos são usados para combinar expressões relacionais. Também devolvem como resultado valores lógicos verdadeiro ou falso. Tabela E V e V = V V e F = F F e V = F F e F = F Tabela OU V ou V = V V ou F = V F ou V = V F ou F = F Uma expressão relacional ou lógica retornará falso para o valor lógico falso e verdadeiro para o valor lógico verdade. Fornecendo dois valores ou expressões lógicas, representadas por expressão1 e expressão2, podemos descrever as operações lógicas a seguir: expressão1 E expressão2 é verdadeiro somente se ambas, expressão1 e expressão2, forem verdadeiras. Se uma for falsa, ou se ambas forem falsas, a operação E também será falsa. expressão1 OU expressão2 é verdadeiro se tanto a expressão1 como a expressão2 forem verdadeiras. As operações OU só resultam em valores falsos se ambas, expressão1 e expressão2, forem falsas.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 14 Exercício resolvido 1 Faça um algoritmo que receba duas notas de aluno, calcule e mostre a média aritmética das notas e a mensagem de Aprovado, se a média obtida for maior ou igual a 6.0 ou, caso contrário, Reprovado. algoritmo media declaração de variáveis real n1,n2,media; início escreva( Digite a nota 1: ); leia(n1); escreva( Digite a nota 2: ); leia(n2); media (n1+n2)/2; se(media >= 6) escreva( Aprovado ); senão escreva( Reprovado ); fim_algoritmo Exercícios: 1 Uma agência de empregos precisa de um programa para analisar as características dos candidatos e determinar as suas funções, conforme a tabela abaixo: IDADE SEXO FUNÇÃO Até 30 anos M Guia Turístico Mais que 30 anos M Gerente Administrativo Até 40 anos F Recepcionista Mais que 40 anos F Gerente de Compras 2 A nota final de um estudante é calculada a partir de três notas atribuídas, respectivamente, a um trabalho de laboratório, a uma avaliação semestral e a um exame final. A média das três notas mencionadas obedece aos pesos a seguir: Faça um programa que receba as três notas, calcule e mostre a média ponderada e o conceito que segue a tabela: 3 Faça um programa que receba um número inteiro e verifique se é par ou impar. 4 Criar um programa para criar um menu de opções na tela, assim: 1 Quadrado 2 Retângulo 3 Triângulo De acordo com a opção desejada, leia os dados necessários para calcular a área da respectiva opção. Mostrar a área calculada.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 15 5 Uma agência bancária possui dois tipos de investimentos, conforme o quadro a seguir. Faça um programa que receba o tipo de investimento e o valor do investimento e que calcule e mostre o valor corrigido de acordo com o tipo de investimento. 6 - Faça um programa que receba a altura e o sexo de uma pessoa e que calcule e mostre o seu peso ideal, utilizando as seguintes fórmulas: 7 - Um supermercado deseja reajustar os preços de seus produtos usando o seguinte critério: o produto poderá ter seu preço aumentado ou diminuído. Para o preço ser alterado, o produto deve preencher pelo menos um dos requisitos a seguir: VENDA MÉDIA PREÇO ATUAL % DE AUMENTO % DE DIMINUIÇÃO MENSAL < 500 < R$ 30,00 10 - >= 500 E < 1200 >= R$ 30,00 e < R$ 80,00 15 - >= 1200 >= 80,00-20 8 - Faça um programa que apresente o menu a seguir, permita ao usuário escolher a opção desejada, receba os dados necessários para executar a operação e mostre o resultado. Verifique a possibilidade de opção inválida e não se preocupe com restrições, como salário negativo. Menu de opções 1. Imposto 2. Novo salário 3. Classificação Digite a opção desejada. Na opção 1: receber o salário de um funcionário, calcular e mostrar o valor do imposto usando as regras a seguir: SALÁRIO PERCENTUAL DO IMPOSTO Menor que R$ 500,00 5% De R$ 500,00 a R$ 850,00 10% Acima de R$ 850,00 15% Na opção 2: receber o salário de um funcionário, calcular e mostrar o valor do novo salário, usando as regras a seguir: SALARIO AUMENTO Maior que R$ 1500,00 R$ 25,00 De R$ 750,00 (inclusive) a R$ 1500,00 (inclusive) R$ 50,00 De R$ 450,00 (inclusive) a R$ 750,00 R$ 75,00 Menor que R$ 450,00 R$ 100,00 Na opção 3: receber o salário de um funcionário e mostrar sua classificação usando a tabela a seguir: SALARIO CLASSIFICAÇÃO Até R$ 700,00 (inclusive) Mal remunerado Maiores que R$ 700,00 Bem remunerado

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 16 9 - Faça um programa para resolver equações do 2º grau. ax 2 + bx + c= 0 Δ =b 2 4 * a * c Δ < 0 não existe raiz real Δ = 0 existe uma raiz real x = (-b) / (2 * a) Δ > 0 existem duas raízes reais x1 = (-b + ) / (2 * a) x2 = (-b - ) / (2 * a) 10 ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição é utilizada para fazer com que um pedaço (trecho) do programa seja executado n vezes, ou seja, quando um trecho do algoritmo ou até mesmo o algoritmo inteiro precisa ser repetido. O número de repetições pode ser fixo ou estar atrelado a uma condição. Assim, existem estruturas para tais situações. Existem 3 tipos de comandos de repetição: para enquanto repita até que 10.1 Para Essa estrutura de repetição é utilizada quando se sabe o número de vezes que um trecho do algoritmo deve ser repetido. Forma geral: para i valor inicial até valor final faça [passo n] inicio comando1; comando2;... Fim para O comando1 e o comando2 serão executados utilizando-se a variável i como controle 1, e seu conteúdo vai variar do valor inicial até o valor final. A informação do passo está entre colchetes porque é opcional. O passo indica como será a variação de controle. Por exemplo, quando for indicado passo 2, a variável de controle será aumentada em 2 unidades a cada iteração até atingir o valor final. Quando a informação do passo for suprimida, isso significa que o incremento ou o decremento da variável de controle será de 1 unidade. Quando houver apenas um comando a ser repetido, os marcadores de bloco inicio e fim poderão ser suprimidos. Exemplos: para i 1 até 10 faça escreva(i); O comando escreva(i) será executado dez vezes, ou seja, para i variando de 1 a 10. Assim, os valores de i serão: 1, 2, 3, 4, 5, 6, 7, 8, 9 e 10. 1 Utilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição contamos +1 na variável, até um valor de acordo com o número de vezes que queremos repetir.

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 17 para j 1 até 9 faça passo 2 escreva(j); O comando escreva(j) será executado cinco vezes, ou seja, para j variando de 1 a 10, de 2 em 2. Assim, os valores de j serão: 1, 3, 5, 7 e 9. 10.2 Enquanto Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse número. Essa estrutura baseia-se na análise de uma condição. A repetição será feita enquanto a condição mostrar-se verdadeira. Existem situações em que o teste condicional da estrutura de repetição, que fica no início, resulta em um valor falso logo na primeira comparação. Nesses casos, os comandos de dentro da estrutura de repetição não serão executados. Forma geral: enquanto(condição) faça comando1; Enquanto a condição for verdadeira, o comando1 será executado. enquanto(condição) faça início comando1; comando2; fim enquanto Enquanto a condição for verdadeira, o comando1 e o comando2 serão executados. x 1; y 5; enquanto(x < y) faça início x x + 2; y y + 1; fim enquanto Simulação: x y Valores 1 5 Valores iniciais 3 6 5 7 7 8 9 9 Valores obtidos dentro da estrutura de repetição 10.3 Repita Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse número. Essa estrutura baseia-se na análise de uma condição. A repetição será feita enquanto a condição mostrar-se verdadeira. A diferença entre a estrutura enquanto e a repita é que nesta última os comandos serão repetidos pelo menos uma vez, já que a condição de parada se encontra no final. Forma geral:

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 18 repita comandos; até(condição); repita os comandos até a condição se tornar verdadeira. x 1; y 5; repita x x + 2; y y + 1; até(x >= y) Simulação: x y Valores 1 5 Valores iniciais 3 6 5 7 7 8 9 9 Valores obtidos dentro da estrutura de repetição Exercícios: 1 Analise os trechos de algoritmos abaixo e escreva qual seria a saída de cada um. a) para i 1 até 20 faça escreva( O valor de i é:,i); b) para i 10 até 1 faça escreva(i); c) para i 15 até 1 faça passo -2 escreva(i); d) para i 10 até 1 faça passo escreva(i); e) para i 0 até 10 faça passo 2 escreva(i); 2 Faça a simulação dos seguintes trechos de algoritmos: a) x 1; y 1; enquanto(x <= 5) faça início y y * x; x x + 1; fim enquanto Simulação: x y Valores b) x 1; y 1; repita y y * x; x x + 1; até(x = 6) Simulação: x y Valores

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 19 3 Criar um algoritmo que mostre a soma dos números pares inteiros positivos de 1 a 50. 4 Escreva um algoritmo que imprima todos os números inteiros de 200 a 100 (em ordem decrescente). 5 Faça uma Programa que receba a idade, o peso e o sexo de 10 pessoas. Calcule e imprima: total de homens; total de mulheres; média das idades dos homens; média dos pesos das mulheres. 6 Criar um programa que leia 3 notas (dentro de uma estrutura de repetição) e calcule a média aritmética. 7 Faça um programa (Eleição) para realizar a simulação de uma urna eletrônica, ou seja, a apuração dos votos de 3 candidatos (1,2 e 3), votos brancos (opção 0) e votos nulos(qualquer outra opção). Suponha que nesta urna votam 10 pessoas. 8 Uma universidade deseja fazer um levantamento sobre 10 alunos para os seguintes levantamentos: Quantos alunos são do sexo masculino (M) e quantos são do sexo feminino (F) Qual a média de idade dos alunos Qual a média de idade das alunas A média de altura dos alunos A média de altura das alunas. 9 - Um cinema, certo dia, cada espectador respondeu a um questionário, que perguntava a sua idade e a opinião em relação ao filme, seguindo os seguintes critérios: (2,0) Opinião Significado A Ótimo B Bom C Regular D Ruim E Péssimo A entrada de dados sobre a opinião deve ser validada. O final da pesquisa será controlado com a resposta S (sim) ou N (não) para um novo espectador. Construa um programa que, lendo esses dados, calcule e apresente: Quantidade de pessoas que respondeu a pesquisa. Média de idade das pessoas que responderam a pesquisa. Porcentagem de cada uma das respostas. 10 Faça um programa que receba dois números (um intervalo) e retorne quantos números impares existe neste intervalo. 11 Faça um programa que calcule o fatorial de um número. 12 Faça um algoritmo para: a) Ler um valor x qualquer b) Calcular Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+ (x+100). 13 Fazer um algoritmo que calcule e escreva a soma dos 50 primeiros termos das seguinte série: 1000 997 994 991 soma =... 1 2 3 4

Algoritmos e Estruturas de Dados 1 Prof. Eduardo 20 14 Sendo S = 1 + 1 + 1 + 1 + 1 +... + 1, um somatório de N (definido pelo usuário) termos, 2 2 3 3 4 4 5 5 N N Faça um algoritmo para calcular S para um número N. 15 Kléber tem 1,50 metros e cresce 2 cm por ano, enquanto Valdívia tem 1,10 e cresce 3 cm por ano. Construa um algoritmo que calcule e mostre quantos anos serão necessários para que Valdívia seja maior que Kléber. 16 Faça um algoritmo que mostre a tabuada de um número.