ALGORITMO E PROGRAMAÇÃO DE COMPUTADORES

Slides:



Advertisements
Apresentações semelhantes
TÉCNICAS DE PROGRAMAÇÃO I
Advertisements

Estruturas de Repetição
Algoritmo I Aula 05 Pseudo-Linguagem.
Desenvolvendo Algoritmos
INTRODUÇÃO – LOGICA E ALGORITMOS
Programação para Geociências
Tipos de dados, Variáveis, Expressões e Operadores
ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2
Introdução a Programação Renata Freire
Introdução a Programação Renata Freire
Programação de Computadores - 2
Estruturas de repetição
Introdução à Lógica de Programação (cont.)
Estruturas de Controle
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Introdução aos Algoritmos
Lógica de Programação Módulo II
INTRODUÇÃO À PROGRAMAÇÃO
Formas de Representação de Algoritmos
Estruturas de Controle
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Professor: Juliano Lucas Gonçalves
Introdução à Programação
Algoritmos Computacionais ( Programas )
Capítulo 3 Estruturas de Controle
INTRODUÇÃO – LOGICA E ALGORITMOS
Estrutura de dados, pseudocódigo
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Introdução a Programação
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Fábio de Oliveira Borges
Operadores Relacionais, Lógicos e comandos de condição
Instituto Federal de Santa Catarina
Android Aula 01 Introdução ao Java Humberto Moura
Desenvolvimento Web Lógica de Programação
Linguagem e Ambiente Scratch
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
BC-0505 Processamento da Informação
Conceitos Básicos Luis Antonio Tavares
CH: 60h Créditos: 3 Prof Me. Tiago Araujo
Algoritmo e Estrutura de Dados
Introdução a Algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
ESTRUTURAS DE CONTROLE
Algoritmos Estruturados
Programação de PIC em C Exposição das funções básicas para
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Algoritmo e Programação
Linguagens de Programação
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN
Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello
Fundamentos de linguagens de programação
ALGORITMOS AULA 3. Objetivos Apresentação das estruturas básicas; Definição de tipos de dados; Seqüência de ações; Operações – Atribuições; – Entrada.
Programação de Computadores - 1
Exercícios (Algoritmo Narrativo, Fluxograma e Pseudocódigo) RESOLVIDO
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Linguagem de Programação I Parte IV
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Profº Antonio Carlos Marcelino de Paula
Projeto e Desenvolvimento de Algoritmos
Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.
Linguagem de Programação Prof. Fabricio Roulin Bittencout
Algoritmos – Conceitos Iniciais
Lógica de programação Introdução à lógica de programação
Algoritmos Grupos de Slides No 2. Prof. SIMÃO Estrutura de decisão simples “Se” if end Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

ALGORITMO E PROGRAMAÇÃO DE COMPUTADORES Universidade Federal Rural do Semiarido Departamento de Ciências Exatas e Naturais ALGORITMO E PROGRAMAÇÃO DE COMPUTADORES Prof.: Fábio Fco. da Costa Fontes Maio / 2009

Algoritmo É uma seqüência lógica de etapas para se realizar determinada atividade Ou Descrição passo a passo de um processo completo a ser utilizado na solução de um problema

Algoritmo Exemplo: Processo: Troca de uma lâmpada queimada Algoritmo _ acionar o interruptor; _ se a lâmpada não acender, então: _ pegar uma escada; _ posicionar a escada embaixo da lâmpada; _ buscar uma lâmpada nova; _ subir na escada; _ retirar a lâmpada queimada; _ colocar a lâmpada nova; _ descer da escada; _ enquanto a lâmpada não acender, faça: _ colocar uma lâmpada nova; Fim.

Algoritmo Exemplo: Processo: rotina de domingo Algoritmo do domingo. Acordar. Tomar o café. Se estiver sol vou à praia senão leio o jornal. Almoçar. Ir ao cinema. Fazer uma refeição. Ir dormir. Fim do domingo.

Algoritmo Exemplo: Processo: salada do alface Receita do alface com molho branco. preparo do molho branco Coloque numa panela a manteiga, a farinha e o leite e misture bem. Em fogo médio, cozinhe até engrossar. Adicione o sal, a pimenta e o queijo. Continue com a panela no fogo, cozinhando até que o queijo derreta, mexendo constantemente. preparo da alface Derreta a manteiga. Junte a alface cortada. Salpique o sal e deixe cozinhar por uns 5 a 10 minutos ou até a alface ficar tenra, ou o líquido da panela secar. juntando os dois Junte ao molho branco e ao suco de limão. Coloque numa travessa e enfeite em volta com pão torrado cortado em triângulos. Fim da receita do alface com molho branco

Algoritmo Exercício: Um homem precisa atravessar um rio com um barco que possui capacidade para carregar, apenas, ele mesmo, e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafa. Escreva um algoritmo, ou seja, indique todas as ações necessárias para que o homem consiga atravessar o rio sem perder suas cargas.

Representações de Algoritmos Descrição Narrativa Uso da linguagem natural, como nos nossos exemplos. Existe a inconveniência da má interpretação, originando ambigüidades e imprecisões. Algoritmo afrouxar ligeiramente as porcas; suspender o carro; retirar as porcas e o pneu; colocar o pneu reserva e as porcas; abaixar o carro; dar o aperto final nas porcas. Fim

Representações de Algoritmos Fluxograma Uso de formas geométricas distintas produzindo ações distintas. Principais figuras: Início ou fim do fluxograma. Entrada de dados. Cálculo de expressões. Saída de resultados. Tomada de decisão Fluxo.

Representações de Algoritmos Cálculo de uma média aritmética com um teste Início m1, m2 m  (m1+m2)/2 m >=5 “Aprovado” “Reprovado” Fim

Representações de Algoritmos Pseudocódigo Uso de linguagem própria, aproximando-se mais das linguagens de alto nível, chamado, também de pseudolinguagem ou ainda portugol. Forma Geral: Algoritmo <nome do algoritmo> < declaração_de_variáveis > Início instruções Fim

Representações de Algoritmos Algoritmo Media Real: n1, n2, media Início Escreva(“Digite as duas notas:”) Leia(n1, n2) media  (n1+n2)/2 Se (media >= 5) então Escreva (“APROVADO”) Senão Escreva (“REPROVADO”) Fim_se Fim

Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizado para apresentar as etapas do processo de uma forma padronizada

Programação Estruturada Estrutura Sequencial: Forma Geral Comando 1 Comando 2 . Comando n

Programação Estruturada Estrutura Condicional: Forma Geral Se <condição > então bloco de Comandos (1) Senão bloco de Comandos (2) Fim se

Programação Estruturada Estrutura Repetitiva: Forma Geral de repetição com teste no início Enquanto <condição > bloco de Comandos Fim enquanto Forma Geral de repetição com teste no fim Repita bloco de Comandos Até < condição >

Programação Estruturada Exercício: Ler um número real e escrever se é negativo, nulo ou positivo.

Programação Estruturada Resposta: Algoritmo numero Real: num Início Leia(num) Se (num > o) então Escreva (“POSITIVO”) Senão Se (num = o) então Escreva (“NULO”) Escreva (“NEGATIVO”) Fim_se Fim

Tipos de Dados Uma das principais funcionalidades de um computador é a manipulação de informações Por isso, é necessário que haja formas de se trabalhar com diferentes tipos de dados em um programa.

Tipos de Dados Podemos definir um tipo de dados como um conjunto de objetos que tem em comum o mesmo comportamento diante de um conjunto definido de operações Ex.: Seres humanos: comem, dormem, andam, etc aviões: voar, decolar, pousar, etc.

Tipos de Dados Infelizmente as linguagens de programação são limitadas e não podem manipular todos os tipos de dados existentes no mundo real. Por isso, a construção de algoritmos para computador deve lidar exclusivamente com os tipos definidos nas linguagens de programação

Tipos de Dados Os dados são classificados em: 1 -Numéricos: 1500; -230; 23.4; etc. O qual divide-se em: Inteiros ou número de ponto fixo ( 1500; -230) Real ou número de ponto flutuante (23.4; -32.6; 10.0)

Tipos de Dados 2 - Literais: chamados, também, “alfanuméricos”, “cadeia de caracteres” ou “strings”. São sempre representados, nos algoritmos, entre aspas. Ex.: “UFERSA” “21/03/2006”

Tipos de Dados 3 - Lógicos: chamados, também, booleanos São oriundos da lógica matemática ou lógica de Boole (Matemático considerado um dos formuladores da lógica matemática). Representado por apenas dois valores com significados opostos como 1 e 0 ou Verdadeiro (V) e Falso (F).

Constantes e Variáveis Vimos que, tipos são conjuntos que contêm elementos com um comportamento comum. Entretanto, na maioria das vezes, precisamos utilizar os elementos individualmente. Ser Humano: João Carro: placa KKK 3333

Constantes e Variáveis Em um computador, manipulamos informações que, durante a execução de um programa, ficam armazenadas temporariamente em memória. Essas informações , num nível maior de abstração, são os elementos pertencentes aos tipos. Variáveis e constantes são repositórios de elementos pertencentes aos tipos.

Constantes e Variáveis Constantes: São valores específicos que não se modificam durante a execução de um algoritmo A declaração de uma constante é feita da seguinte forma: Constante <identidicador1> = <valor1>; <identidicador2> = <valor2>; ... <identidicador N> = <valor N>;

Constantes e Variáveis Variáveis: Variável é uma entidade destinada a guardar dados. Estes dados podem variar durante a execução do algoritmo A declaração de uma variável é feita da seguinte forma: Var <lista_de_variáveis1> : <tipo1>; <lista_de_variáveis2> : <tipo2>; ou <tipo> : <lista_de_variáveis>

Constantes e Variáveis Algoritmo 1 inteiro: Contador, resultado; Constante num = 6; 4 Início 5 Leia (contador, resultado) 6 enquanto (contador <= 4) faça 7 resultado  resultado + num 8 contador  contador + 1 9 fim_enquanto 10 Escrever (“ O resultado é:”resultado) 11 Fim

Constantes e Variáveis Algoritmo 1 Var contador, resultado : inteiro; Constante num = 6; 4 Início 5 Leia (contador, resultado) 6 enquanto (contador <= 4) faça 7 resultado  resultado + num 8 contador  contador + 1 9 fim_enquanto 10 Escrever (“ O resultado é:”resultado) 11 Fim

Exercício Fazer um algoritmo para ler um nome do teclado e verificar se é igual ao seu nome. Imprima conforme o caso: nome correto ou nome incorreto. Algoritmo Nome Var N: caracter; Constante Result = “Fabio”; Inicio Leia (N) Se (N = Result) então Escreva (“nome correto”); Senão Escreva (“nome incorreto”); Fim_se Fim

Exercício 2 Faça um algoritmo que leia a idade de uma pessoa e diga-lhe se é maior de idade ou não. Represente o valor que indica maior de idade como uma constante que valerá 18. Algoritmo Idade Var id: inteiro; Constante limite = 18; Inicio Escreva(“Entre com a idade:”); Leia (id) Se (id > = limite) então Escreva (“é maior de idade”); Senão Escreva (“é menor de idade”); Fim_se Fim

Exercício 2 Algoritmo Idade Var id: inteiro; maior : booleano; Constante limite = 18; Inicio Escreva(“Entre com a idade:”); Leia (id) Se (id > = limite) então maior  V; Senão maior  F; Fim_se Se (maior) então Escreva (“é maior de idade”); Escreva (“é menor de idade”); Fim

Exercício 1 - Sabendo que a relação entre vértices, arestas e faces de um objeto geométrico é dada pela fórmula: Vértice + faces = arestas + 2 Calcule o número de vértices de um objeto geométrico genérico. A entrada será o número de faces e arestas (dadas por um número inteiro e positivo) e a saída será o número de vértices 2 – Faça um algoritmo que armazene dois números em duas variáveis e que troque os valores das variáveis

Exercício 1 - Resposta: Algoritmo Vertice Var vert, face, aresta: inteiro; Início Escreva (“entre com o número de faces”); Leia (face); Escreva (“entre com o número de arestas”); Leia (aresta); Vert  aresta + 2 – face; Escreva (“ O nº de vértices do objeto é:” vert); Fim

Exercício 2 - Resposta: Algoritmo troca-valor Var a, b, aux: inteiro; Início Escreva (“entre com o primeiro número”); Leia (a); Escreva (“entre com o segundo número”); Leia (b); aux  a; a  b; b  aux; Escreva (“ O 1º e 2º nº, consecutivamente, são:” a, b); Fim

Operadores aritméticos + adição subtração / divisão * multiplicação ** potenciação div divisão inteira. Ex: 5 div 2 = 2 ( o re- sultado é apenas o valor inteiro) mod resto inteiro da divisão. Ex: 5 mod 2 = 1 (o resultado é o res- to da divisão)

Operadores Relacionais > Maior que < Menor que = igual >= maior ou igual que <= menor ou igual que <> diferente Operadores Lógicos não negação e conjunção ou disjunção

Exercício 1 - Fazer um algoritmo para determinar se é possível calcular ou não uma raiz quadrada. Caso positivo calcule-a.

Exercício 1 – Resposta: Algoritmo Raiz-quadrada Var num, raiz: real Inicio Escreva (“digite um número”) Leia (num) Se (num >= 0) então raiz  num ** 0.5; Escreva (“a raiz quadrada é:” raiz); Senão escreva (“não há raiz quadrada”) Fim-se Fim

Exercício 2 – Fazer um algoritmo que identifique se o número digitado é par ou impar:

Exercício Algoritmo par-impar Var num: inteiro Inicio 2 – Resposta: Algoritmo par-impar Var num: inteiro Inicio Escreva (“digite um número”) Leia (num) Se (num mod 2 = 0) então Escreva (“O número é par”); Senão escreva (“O número é impar”) Fim-se Fim

Exercício 3 - Faça um algoritmo que leia 100 números e retorne a soma e a média desses valores

Exercício Algoritmo Soma-media Var contador: inteiro; valor, soma, media: real Inicio contador  0; soma  0; Enquanto (contador < 100) faça Escreva (“entre com um valor:”); leia (valor); soma  soma + valor; contador  contador + 1; Fim-enquanto media  soma / contador; Escreva (“a soma é:” soma); Escreva (“a média é:” media) Fim

Exercício Algoritmo Soma-media Var contador: inteiro; valor, soma, media: real Inicio contador  0; soma  0; Repita Escreva (“entre com um valor:”); leia (valor); soma  soma + valor; contador  contador + 1; Até (contador = 100) media  soma / contador; Escreva (“a soma é:” soma); Escreva (“a média é:” media) Fim

Estrutura Repetitiva Dentre as Estruturas de programação, foram vistas: Estrutura Sequencial Estrutura Condicional Estruturas Repetitivas: Enquanto e Repita Uma terceira forma de Estrutura Repetitiva é: Para <var>  <início> até <fim> passo <inc> faça bloco de comando Fim_para

Estrutura Repetitiva Algoritmo Soma-media Algoritmo Soma-media Var contador: inteiro; valor, soma, media: real Inicio contador  0; soma  0; Enquanto (contador < 100) faça Escreva (“entre com um valor:”); leia (valor); soma  soma + valor; contador  contador + 1; Fim-enquanto media  soma / contador; Escreva (“a soma é:” soma); Escreva (“a média é:” media) Fim Algoritmo Soma-media Var contador: inteiro; valor, soma, media: real Inicio soma  0; Para (contador  0 até 99 passo 1) faça Escreva (“entre com um valor:”); leia (valor); soma  soma + valor; Fim-para media  soma / contador; Escreva (“a soma é:” soma); Escreva (“a média é:” media) Fim

Estrutura Repetitiva Enquanto: consiste em um teste de condição antes de efetivar a repetição. A saída do laço só ocorre quando a condição se torna falsa. Repita: Consiste em um teste de condição no final. A saída de um laço repita ocorre quando a condição booleana se torna verdadeira. Para: Consiste em uma estrutura de repetição cujo processo tem um início e um fim fixo.

Exercício 4 - Faça um algoritmo que leia um número inteiro e em seguida calcule e escreva o seu fatorial. Se o número for negativo, informe que o valor é inválido.

Exercício Algoritmo Fatorial var valor, fat, num: inteiro Inicio Escreva (“Entre com um valor:”); Leia (valor); Se (valor < 0) então Escreva (“valor inválido”); Senão fat  1; num  valor; Enquanto (num > 1) faça fat  fat * num; num  num – 1; Fim-enquanto Fim-se Escreva(“O fatorial de” valor “ é igual a:” fat); Fim

Exercício Algoritmo Fatorial var valor, fat, num: Inteiro Início Escreva (“Entre com um valor:”); Leia(valor); Se (valor < 0) então Escreva(“Não existe fatorial de número negativo.”); Senão fat  1; Para (num  2 até valor) faça fat  fat*num; Fim_para Escreva (“Fatorial de” valor “ igual a,” fat); Fim_se Fim

Exercício 5 - Escreva um algoritmo para calcular a soma de dez números quaisquer fornecidos pelo usuário. Utilize a estrutura de repetição do tipo “Para”.

Exercício Algoritmo Soma-10 Var Soma, num: real; Cont: int; Início Para ( Cont  1 até 10 ) faça Escreva (“digite o número”); Leia (num); Soma  soma + num Fim-para Escreva (“ A soma é:” soma); Fim

Exercício 6 - Faça um algoritmo que leia três valores que representam os lados de um triângulo. Primeiramente, verifique se os lados podem formar um triângulo (a soma de dois lados não pode ser menor que o terceiro lado). Caso possa formar um triângulo, indique se este é equilátero (três lados iguais), isósceles (dois lados iguais) ou escaleno (três lados diferentes).

Algoritmo Triângulo Var a, b, c: int; Início Escreva (“entre com os três lados do triângulo”); Leia (a, b, c); Se ((a + b < c) ou (a + c < b) ou (b + c < a)) então Escreva (“ valores inválidos”); Senão Se ((a = b) e (b = c)) então Escreva (“equilátero”); Se ((a = b) ou (a = c) ou (b = c)) então Escreva (“isósceles”); Escreva (“escaleno”); Fim-se Fim

Exercício 7 - Faça um algoritmo que calcule a potenciação. Utilize o operador * quando o expoente for positivo ou nulo e utilize o operador ** quando o expoente for negativo.

Algoritmo Potencia Var result, base, expoente, cont: real; Início Escreva (“entre com a base”); Leia (base); Escreva (“entre com o expoente”); Leia (expoente); Se (expoente < 0) então Result  base ** expoente; Senão cont  1; // usa-se as duas barras para colocar comentários result  1; // no caso de expoente 0, o laço é evitado Enquanto (cont <= expoente) faça result  result * base; cont  cont + 1; Fim-enquanto Fim-se Escreva (base, “elevado a”, expoente, “=“, result); Fim

Exercício 8 – Dado o algoritmo abaixo: Algoritmo Início Ler (x, y) Z x – y Se (z = 0) então Escrever (x “é igual a “ y) Senão Se (z > 0) então Escrever (x “é maior do que “ y) Escrever (x “é menor do que “ y) Fim_se Fim Represente-o em forma de fluxograma.

Exercício Início Ler X, Y Z  X - Y V Escreva (X “é igual a” Y) Z = 0 F V Escreva (X “é maior que” Y) Escreva (X “é menor que” Y) Fim

Exercício 9 - Calcular a média aritmética de 4 notas para vários alunos e parar quando aparecer uma nota negativa

Exercício Algoritmo media var n1, n2, n3, n4, media: reais; Início Escreva ("Informe as quatro notas do aluno: "); Leia (n1, n2, n3, n4); Enquanto (n1 >= 0 e n2 >= 0 e n3 >= 0 e n4 >= 0) faça media = (n1 + n2 + n3 + n4) / 4; Escreva ("a média calculada é: " media); /* Obtenção das notas para os demais alunos */ Fim_enquanto Fim.