Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fernando célio 1. CONCEITOS INICIAIS 1.1 Definição de algoritmos. 1.2 Formas de representação. 1.3 Tipos de dados, variáveis e constantes. 1.4 Instruções primitivas. Fernando Célio de Deus É uma sequência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. Passo a passo significa que cada passo é completado antes que o próximo comece. Bem definido significa que cada passo é completamente definido a partir da entrada atual e dos passos anteriores FASES para desenvolver o algoritmo: ◦ Determinar o problema, definí-lo bem ◦ Dividir a solução nas três fases: Exemplo: ◦ Problema: calcular a média de quatro números Dados de entrada: os números, N1, N2, N3 e N4 Processamento: somar os quatro números e dividir a soma por 4 ◦ Dados de saída: a média final ENTRADA PROCESSAMENTO SAÍDA N1 + N2 + N3 + N4 4 1. Receber o primeiro número 2. Receber o segundo número 3. Receber o terceiro número 4. Receber o quarto número 5. Somar todos os números 6. Dividir a soma por 4 7. Mostrar o resultado da divisão Algoritmo: Entender a entrada Entender o que se espera na saída Repetir: ◦ Bolar um método, ◦ Se o método é correto, então Analisar a complexidade do método, Se complexidade é aceitável, terminar. Implementar (programar) PSEUDOCÓDIGO: ◦ Facilita descrever o algoritmo antes de passá-lo para uma linguagem de programação ◦ Intermediária: linguagem natural – linguagem de programação ◦ Pseudocódigo = “códigofalso” FLUXOGRAMA: ◦ É uma forma universal de representação, pois se utiliza de figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas Descrição do algoritmo, menos rigorosa que na linguagem de programação (código fonte)Fácil de entender e fácil de codificar depois Independente da linguagem de programação Simples e objetivo Técnicas: 1. Início de programa 2. ler a, b 3. se a≠0 então x=-b/a imprimir valor do zero x senão imprimir ¨Não há zero” fim de se 4. Fim de programa É uma forma universal de representação, pois se utiliza de figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas. Fluxograma de um programa para ler dois números aleatórios diferentes de zero, calcular a média dos mesmos e mostrar o resultado encontrado. Digite 1º numero n1 Digite 2º numero n2 Números são zeros?? Inicio Some os dois números e divida por 2 Imprima o resultado encontrado Fim SIM NÃO Faça um algoritmo para assar pão em um fogão a lenha. Elabore um algoritmo que conte os votos S ou N entre 03 votantes. ◦ Sequência finita de passos que levam à execução de uma tarefa ◦ Ex. “somar dois números”: Escrever primeiro número no retângulo A Escrever segundo número no retângulo B Somar o número do retângulo A com o número do retângulo B e escrever o resultado no retângulo C A B C + = ALGORITMO ◦ Algoritmo escrito em uma linguagem de computador (linguagem de programação - C, Pascal, COBOL, Fortran, Basic, Java, etc.) ◦ Interpretado e executado por um computador ◦ Interpretação rigorosa, exata, do computador escrita do algoritmo na linguagem de prog. tem que seguir regras mais rigorosas PROGRAMA: Constantes Têm-se como definição de constante tudo aquilo que é fixo ou estável. EX: CONST pi = 3.14159 Variáveis Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. VAR nome: caracter[30] idade: inteiro salário: real tem_filhos: lógico INTEIRO: Representa valores numéricos negativo ou positivo sem casa decimal, ou seja, valores inteiros. REAL: Representa valores numéricos negativo ou positivo com casa decimal, ou seja, valores reais. Também são chamados de ponto flutuante. LÓGICO: Representa valores booleanos, assumindo apenas dois estados, VERDADEIRO ou FALSO. Pode ser representado apenas um bit (que aceita apenas 1 ou 0). TEXTO: Representa uma sequencia de um ou mais de caracteres, colocamos os valores do tipo TEXTO entre ” ” (aspas duplas). Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Grosso modo, estas informações podem ser classificadas em dois tipos: ◦ As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. ◦ Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador. O conjunto dos números naturais é representado por N e é dado por: N = {1, 2, 3, 4, ...} Na sequência, encontramos o conjunto dos números inteiros: Z = {..., -3, -2, -1, 0, 1, 2, 3, ...} Englobando o conjunto dos números inteiros, existe o conjunto dos números fracionários. Os números inteiros são aqueles que não possuem componentes decimais ou fracionários, podendo ser positivos ou negativos. Como exemplos de números inteiros temos: ◦ 24 - número inteiro positivo ◦ 0 - número inteiro ◦ -12 - número inteiro negativo Os dados de tipo real são aqueles que podem possuir componentes decimais ou fracionários, e podem também ser positivos ou negativos. ◦ Exemplos de dados do tipo real: ◦ 24.01 - número real positivo com duas casas decimais ◦ 144. - número real positivo com zero casas decimais ◦ -13.3 - número real negativo com uma casa decimal ◦ 0.0 - número real com uma casa decimal ◦ 0. - número real com zero casas decimais O tipo de dados literal é constituído por uma sequência de caracteres contendo letras, dígitos e/ou símbolos especiais. ◦ Exemplos de dados do tipo literal: "QUAL ?" - literal de comprimento 6 " " - literal de comprimento 1 "qUaL ?!$" - literal de comprimento 8 " AbCdefGHi" - literal de comprimento 9 "1-2+3=" - literal de comprimento 6 O tipo de dados lógico é usado para representar dois únicos valores lógicos possíveis: verdadeiro e falso. ◦ Exemplo: ◦ .V. - valor lógico verdadeiro ◦ .F. - valor lógico falso Os dados numéricos dividem-se em duas classes: inteiros, que não possuem parte fracionária e podem ser positivos ou negativos; reais, que podem possuir parte fracionária e podem ser positivos ou negativos. Os dados do tipo literal podem conter sequências de letras, dígitos ou símbolos especiais, delimitados por aspas ("). Seu comprimento é dado pelo número de caracteres em string. Bit é a sigla para Binary Digit, que em português significa dígito binário, ou seja, é a menor unidade de informação que pode ser armazenada ou transmitida. Um bit pode assumir somente 2 valor Um byte é um dos tipos de dados integrais em computação, é usado para especificar o tamanho ou quantidade da memória ou da capacidade de armazenamento de um dispositivo, independentemente do tipo de dados armazenados. 0 ou 1. 30 1. 1 Byte = 8 bits 2. 1 Kilobyte (ou KB) = 1024 bytes 3. 1 Megabyte (ou MB) = 1024 kilobytes 4. 1 Gigabyte (ou GB) = 1024 megabytes 5. 1 Terabyte (ou TB) = 1024 gigabytes É também através dos bytes que se determina o comprimento da palavra de um computador. 8 bits - palavra de 1 byte 16 bits - palavra de 2 bytes 32 bits - palavra de 4 bytes 31 Tipo Tamanho Intervalo Uso Char/Boolean 1 byte -128 a 127 número muito pequenoe caracter ASCII int 2 bytes - 32768 a 32767 contador, controle de laço float 4 bytes 3.4e38 Real (precisão de 7 dígitos) double 8 bytes 1.7e-308 a 1.7e308 científico (precisão de 15 dígitos) 2.1 Estrutura condicional simples. 2.2 Estrutura condicional composta. 2.3 Estrutura condicional com múltiplas possibilidades de escolha. Faça um algoritmo que calcule a nota do aluno se nota maior ou igual a 70 aprovado se nota menor reprovado. Faça um programa que calcule a velocidade média de um veículo a partir da distância em km (D) e o tempo de percurso em horas (T). Caso a velocidade média supere 120km/h, o programa deve imprimir “Multa”. Faça um programa que lê dois números e responda se o primeiro é o maior. ASCENCIO, Ana Fernanda Gomes. Lógica de programação com Pascal. São Paulo: Pearson Makron Books, 1999. ASCENCIO, Ana Fernanda Gomes; VENERUCHI, Edilene Aparecida. Fundamentos de programação de computadores: algoritmos, Pascal e C/C++. São Paulo: Prentice Hall, 2002. GUIMARÃES, Angelo de Moura; LAGES, Newton Alberto de Castilho. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. MEDINA, Marco; FERTIG, Cristina. Algoritmos e programação – teoria e prática. São Paulo: Novatec, 2005. ZIVIANI, Nívio. Projeto de algoritmos com implementação em Pascal e C. 2.ed. São Paulo: Thomson, 2004. hpt.wikipedia.org/wiki/Algoritmo www.apostilando.com/ www.freepascal.org www2.fundao.pro.br/articles.asp?cod=32 www.apoioinformatica.inf.br/visualg/objetivos.htm arquivos.coinfo.cefetpb.edu.br/~fred/logalg/material/ApostilaA lgoritmosPascal.pdf www.malvescpv.com.br/logica_program.doc paginas.terra.com.br/informatica/ rjmf/alpseudocodigo.htm http://pjtsalina.codigolivre.org.br/apostilas/apascal.html http://www.bc.furb.br/docs/MO/2002/256981_1_1.pdf http://www.htdp.org/ Faça um fluxograma que: 1. Escreva os passos necessários para uma pessoa efetuar um saque em um caixa eletrônico Exemplos: MEDIA = (N1+N2+N3+N4) / 4 Operadores relacionais são muito usados quando temos que tomar decisões nos algoritmos. Com eles fazemos testes, comparações, que resultam em valores lógicos (verdadeiro ou falso): Lógica de programação Exemplo: tendo duas variáveis, A = 5 e B = 3: Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação o por ela guardada. VAR <nome_da_variável> : <tipo_da_variável> VAR <lista_de_variáveis> : <tipo_das_variáveis> Leitura do material programação em dev C++ Adotada: ARAÚJO, Everton C. Algoritmos: fundamento e prática. Capítulo: 10 - Pseudocódigos – Estrutura Condicional. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. Capítulo: 4 - Estruturas de Controle – A Tomada de Decisão. ARAÚJO, Everton C. Algoritmos: fundamento e prática. Capítulo: 11 - Estruturas de Repetição. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. Capítulo: 5 - Estruturas de Controle – Laços ou Malhas de Repetição. SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. Capítulo: 7 - Controle do Fluxo de Execução. ARAÚJO, Everton C. Algoritmos: fundamento e prática. 2.ed. Florianópolis: VisualBooks, 2005. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. 17.ed. São Paulo: Érica, 2005. SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. São Paulo: Pearson Education do Brasil, 1992.
Compartilhar