Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Algoritmos, Notas de estudo de Algoritmos

Algoritmos-Portuguol

Tipologia: Notas de estudo

2011

Compartilhado em 02/04/2011

danilo-dalla-vecchia-rocha-4
danilo-dalla-vecchia-rocha-4 🇧🇷

4.7

(48)

3 documentos

1 / 43

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
A
Al
lg
go
or
ri
it
tm
mo
os
s
Lógica para Desenvolvimento de Programação
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Pré-visualização parcial do texto

Baixe Algoritmos e outras Notas de estudo em PDF para Algoritmos, somente na Docsity!

Al Alggoorriittmmooss

Lógica para Desenvolvimento de Programação

Introdução Este trabalho é fruto de minha experiência em desenvolvimento de softwares e cursos lecionados na área de programação. O material aqui apresentado foi recolhido de algumas literaturas de Estrutura de Dados e Tutoriais da encontrados no sites da Internet. A programação é para mim uma diversão, apesar de complexo, mas vejo como a capacidade de um ser humano dominar e solucionar com recursos computacionais problemas do dia-a-dia de uma Empresa, Corporação, etc... O raciocínio da lógica para a programação traz ao indivíduo um novo mundo cheio de outros mundos. Dominando a lógica você será capaz de aprender sem grandes dificuldades qualquer outra linguagem de programação seja ela estruturada, orientada a objeto, orientada a eventos.

Alessandro Coelho Porto

Abordagem Contextual Muitas pessoas gostam de falar ou julgar que possuem e sabem usar o raciocínio lógico, porém, quando questionadas direta ou indiretamente, perdem esta linha de raciocínio, pois este depende de inúmeros fatores para completá-lo, tais como: calma, conhecimento, vivência, versatibilidade, experiência, criatividade, ponderação, responsabilidade, entre outros. Bem sem mais delongas podemos dizer que lógica é a ciência que estudas as leis e critéios de validade que regem o pensamento e a demonstração, ou seja, ciência dos princípios formais do raciocínio. Usar a lógica é um fator a ser considerado por todos, principalmente pelos profissionais de informática (programadores, analistas de sistemas e suporte), pois seu dia-a-dia dentro das organizações é solucionar problemas e atingir os objetivos apresentados por seus usuários com eficiência e eficácia, utilizando recursos computacionais e/ou automatizados macatronicamente. Saber lidar com problemas de ordem administrativa, de controle, de planejamento e de estratégica requer atenção e boa performance de conhecimento de nosso interesse é mostrar como desenvolver e aperfeiçoar melhor esta técnica, lembrando que para isto, você deverá ser persistente e praticá-la constantemente, chegando à exaustão sempre que julgar necessário. Princípios de Resoluções de Problemas Primeiramente, devemos entender e compreender a palavra “problema”. Podemos dizer que problema é um proposta duvidosa, que pode Ter inúmeras soluções, ou questão não solvida e que é o objeto de discussão, segundo a definição encontrada no Dicionário Aurélio. Preferimos dizer que problema é uma questão que foge a uma determinada regra, ou melhor, é o desvio de um percurso, o qual impede de atingir com sucesso um determinado objetivo com eficiência e eficácia. Uma das soluções utilizadas para a resolução de problemas tem sido a utilização dos diagramas, no decorrer do curso será bastante enfatizado em sala de aula o uso de tais ferramentas com o intuito de auxiliar os aprendizados tanto na resolução de problemas como no conhecimento das técnicas de programação. ALGORITMO Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema. PROGRAMAÇÃO ESTRUTURADA Basicamente, a Programação Estruturada consiste numa metodologia de projeto de programas visando:  facilitar a escrita dos programas;  facilitar a leitura (o entendimento) dos programas;  permitir a verificação a priori dos programas;

 facilitar a manutenção e modificação dos programas. O maior problema em grandes sistemas de software reside na enorme complexidade desses sistemas, cuja a apreensão vai geralmente muito além da capacidade intelectual de um ser humano. Entenda-se aqui por complexidade de um sistema uma medida do número de seus componentes e do grau de interação entre eles. Para Dijkstra, o indiscutível iniciador da programação estruturada, “a arte de programar consiste na arte de organizar e dominar a complexidade”. A idéia da Programação Estruturada, que vai ao encontro da mencionada tarefa do programador, é reduzir a complexidade, em três níveis:

  1. desenvolvimento do programa em diferentes fases por refinamento sucessivo (desenvolvimento Top-Down);
  2. decomposição do programa total em módulos funcionais, organizados de preferência num sistema hierárquico;
  3. usando dentro de cada módulo só um número muito limitado de estruturas básicas de fluxo de controle. O curso tem por objetivo apresentar aos alunos os conceitos e desenvolvimento da programação estruturada, utilizando duas ferramentas muito utilizadas em cursos acadêmicos, o Portugol e o Pascal. PROGRAMA Um programa é um Algoritmo escrito em uma linguagem computacional. Mais o que é um Algoritmo? Algoritmo é um processo de cálculo matemático ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições. Podemos dizer também, que são regras formais para obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas. LINGUAGENS DE PROGRAMAÇÃO São Softwares que permitem o desenvolvimento de programas. Possuem um poder de criação ilimitado, desde jogos, editores de texto, sistemas empresariais até sistemas operacionais. Existem várias linguagens de programação, cada uma com suas características próprias. Exemplos:  Pascal  Clipper  C  Visual Basic  Delphi e etc.

DIV  Retorna o valor inteiro que resulta da divisão entre 2 números inteiros. FUNÇÕES Uma função é um instrumento (Sub–algoritmo) que tem como objetivo retornar um valor ou uma informação. A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu argumento inicial entre parênteses. As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordo com o seu interesse. BIBLIOTECAS DE FUNÇÕES Armazenam um conjunto de funções que podem ser usadas pelos programas. FUNÇÕES PRÉ-DEFINIDAS ABS( ) VALOR ABSOLUTO SQRT( ) RAIZ QUADRADA SQR( ) ELEVA AO QUADRADO TRUNC( ) VALOR TRUNCADO ROUND( ) VALOR ARREDONDADO LOG( ) LOGARITMO SIN( ) SENO COS( ) COSENO TAN( ) TANGENTE As funções acima são as mais comuns e importantes para nosso desenvolvimento lógico, entretanto, cada linguagem possui suas funções própias. As funções podem ser aritméticas, temporais, de texto e etc. VARIÁVEIS Variáveis são endereços de memória destinados a armazenar informações temporariamente.

  • Todo Algoritmo ou programa deve possuir variável! VARIÁVEIS DE ENTRADA E SAÍDA Variáveis de Entrada armazenam informações fornecidas por um meio externo, normalmente usuários ou discos. Variáveis de Saída armazenam dados processados como resultados. Exemplo:

De acordo com a figura acima A e B são Variáveis de Entrada e C é uma Variável de Saída. CONSTANTES Constantes são endereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa. Exemplo: PI = 3. IDENTIFICADORES São os nomes dados a variáveis, constantes, Tipo de Dados, Registros e programas. Regras Para construção de Identificadores:  Não podem ter nomes de palavras reservadas (comandos da linguagem);  Devem possuir como 1º caractere uma letra ou Underscore ( _ );  Ter como demais caracteres letras, números ou Underscore;  Ter no máximo 127 caracteres;  Não possuir espaços em branco;  A escolha de letras maiúsculas ou minúsculas é indiferente. Exemplos: NOME TELEFONE IDADE_FILHO NOTA1 SALARIO PI UMNOMEMUITOCOMPRIDOEDIFICILDELER UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER TIPOS DE DADOS Todas as Variáveis devem assumir um determinado tipo de informação. O tipo de dado pode ser:  Primitivo  Pré-definido pela linguagem;  Sub-Faixa  É uma parte de um tipo já existente;  Escalar  Definidos pelo programador. TIPOS PRIMITIVOS DE DADOS

A B C=A+B

ÍNICIO
COMANDOS DE ENTRADA,PROCESSAMENTO E SAÍDA

<>; <> } FIM.

ESTRUTURAS SEQÜÊNCIAIS

Como pode ser analisado no tópico anterior, todo programa possui uma estrutura seqüencial determinada por um ÍNICIO e FIM. TÉCNICAS BÁSICAS DE PROGRAMAÇÃO A partir deste ponto de estudo, você terá um contato direto com a parte mais prática deste trabalho. Anteriormente nos preocupamos em proporcionar a você, leitor, um conhecimento teórico básico, de algns pontos que são por vezes causadores de dúvidas até a alguns profissionais de informática considerados experientes. Sendo assim, daqui para frente você terá um contato maior com a aplicação prática dos Algoritmos. ENTRADA, PROCESSAMENTO E SAÍDA Para se criar um programa que seja executável dentro de um computador, você deverá term em mente três pontos de trabalho: a entrada de dados, o seu processamamento e a saída dos mesmos. Sendo assim, todo programa estará trabalhando com estes três conceitos. Se os dados forem entrados de forma errada, serão consequentemente e resultarão em respostas erradas. Desta forma, dizer a alguém que foi erro do computador é ser um pouco “medíocre”. O processo de execução de um programa ocorre segundo o exposto, após a entrada de dados com a instrução leia e saída dos mesmos com a instrução escreva, o processamento será uma conseqüência da manipulação das variáveis de ação. Uma entrada e uma saída poderão ocorrer dentro de um computador de diversas formas. Por exemplo, uma entrada poderá ser feita via teclado, moddem, leitores óticos, disco, entre outras. Uma saída poderá ser feita em víde, impressora, disco, entre outras formas. Devido a esta grande variedade, nossos programas escrito em português estruturado farão menção às instruções leia e escreva.

Exercícios de Aprendizagem

  1. Construir um programa que efetue o cálculo de um salário líquido de um professor. Para fazer este programa você deverá possuir alguns dados, tais como: valor da hora aula, número de aulas dadas no mês e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual será o seu salário bruto para efetuar o desconto e Ter o valor do salário líquido.
  2. Efetuar o cálculo da quantidade de litros de combustível gastos em uma viagem, utilizando-se um automóvel que faz 12 Km por litro. Para obeter o cálculo, o usuário deverá fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Desta forma, será possível obter a distância percorrida com a fórmula DISTÂNCIA <= TEMPO * VELOCIDADE. Tendo o valor da distância, basta calcular a quantidade de litros de combustível utilizada na viagem com a fórmula: LITROS_USADOS <= DISTÂNCIA / 12. O programa deverá apresentar os valores da velocidade média, tempo gasto na viagem, a distância percorrida e a quantidade de litros usados na viagem.
  3. Ler dois números inteiros e efetuar as operações de adição, subtração, multiplicação e divisão de A por B apresentando ao final os quadro resultados obtidos. Estrutura de Controloe – A tomada de Decisões Executa uma seqüência de comandos de acordo com o resultado de um teste. A estrutura de decisão pode ser Simples ou Composta, baseada em um resultado lógico. Simples: SE <<CONDIÇÃO>> ENTÃO <> Composta 1: SE <<CONDIÇÃO>> ENTÃO <> SENÃO <> Composta 2: SE <<CONDIÇÃO>> ENTÃO INICIO <>; <> FIM; SENÃO INICIO <>; <> FIM;
OPERADORES LÓGICOS

Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro. E RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS. OU BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR VERDADEIRO. NÃO INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA. TABELA VERDADE A B A E B A OU B NÃO (A) V V V V F V F F V F F V F V V F F F F V EXPRESSÕES LÓGICAS As expressões compostas de relações sempre retornam um valor lógico. Exemplos: 2+5>4  Verdadeiro 3<>3  Falso De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos. Símbolo Significado = Igual a <> Diferente de

Maior que < Menor que = Maior ou igual a <= Menor ou igual a Exemplo 01 Segue um Algoritmo que lê 2 números e escreve o maior. PROGRAMA ACHA_MAIOR; VAR A, B : INTEIRO; INICIO LER (A, B); SE A>B ENTÃO ESCREVER (A) SENÃO ESCREVER (B)

Exemplo 01 Segue um Algoritmo que lê 3 números e escreve o maior. PROGRAMA ACHA_MAIOR; VAR A, B, C : INTEIRO; INICIO LER (A, B, C); SE (A>B) E (A>C) ENTÃO ESCREVER (A) SENÃO SE (B>A) E (B>C) ENTÃO ESCREVER (B) SENÃO ESCREVER (C) FIM. ESTRUTURAS DE CONDIÇÃO A estrutura de condição eqüivale a um ninho de SE’S. Forma Geral: FACA CASO CASO <<CONDIÇÃO1>> <>; CASO <<CONDIÇÃON>> <>; OUTROS CASOS <>; FIM DE CASO Exemplo 01 Segue um Algoritmo que lê 3 números e escreve o maior. PROGRAMA ACHA_MAIOR; VAR A, B, C : INTEIRO; INICIO LER (A, B, C); FACA CASO CASO (A>B) E (A>C) ESCREVER (A); CASO (B>A) E (B>C) ESCREVER (B); OUTROS CASOS ESCREVER (C); FIM DE CASO FIM. Exercícios de Aprendizagem

  1. Ler três valores para os lados de um triângulo, considerando lados como: A, B e C. Verificar se os lados fornecidos formam realmente um triângulo, e ser

for esta condição verdadeira, deverá ser indicado qual tipo de triângulo for formado: isósceles, escaleno ou equilátero.

  1. Fazer a leitura de 3 valores para extrair uma equação do 2º grau. Deverá ser verificado se existem raízes reais, uma ou duas raízes conforme necessário.
  2. Ler quatro valores referentes a quatro notas escolares e um aluno e imprimr uma mensagem dizendo que o alunos foi aprovado, se o valor da média escolar for maior ou igual a 5. Se o aluno não foi aprovado, indicar uma mensagem informando esta condição. Apresentar junto das mensagem o valor da média do aluno para qualquer condição.
  3. Ler quatro valores referentes a quatro notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi aprovado, se o valor da média escolar for maior ou igual a 7. Se o valor da média for menor que 7, solicitar a nota de exame, somar com o valor da média e obter nova média. Se a nova média for maior a 5, apresentar uma mensagem dizendo que o aluno foi aprovado em exame, se o aluno não foi aprovado, indicar uma mensagem informando esta condição. Apresentar com as mensagens o valor da média do aluno, para qualquer condição. ESTRUTRA DE CONTROLE – LAÇOS OU MALHAS DE REPETIÇÃO Existem ocasiões onde se é necessário efetuar a repetição de um trecho de programa um determinado número de vezes. Neste caso, poderá ser criado um looping que efetue o processamento de um determinado trecho, tantas vezes quantas forem necessárias. Os loopings também são chamados de: laços de repetição ou malhas de repetição. Na programação estrutura ocorre a existênciade comandos apropriados para efetuar a repetição de determinados trechos de programas o número de vezes que for necessário. A principal vantagem deste recurso é que o programa passa a Ter um tamanho menor, podendo sua amplitude de processamento ser aumentada em se alterar o tamanho do código de programação. Desta forma, pode-se determinar repetiçoes com números variados de vezes.

Sua validação é final fazendo com que a repetição seja executada pelo menos uma vez.

Forma Geral; REPITA <>; <> ATE <<CONDIÇÃO>> Exemplo 01 Segue um algoritmo que calcule a soma dos salários dos funcionários de uma empresa. O programa termina quando o usuário digitar um salário menor que 0. PROGRAMA SOMA_SALARIOS; VAR SOMA, SALARIO : REAL; INICIO SOMA:=O; REPITA LER (SALARIO); SOMA:=SOMA+SALARIO ATE SALARIO<0; ESCREVER (SOMA) FIM. Exemplo 02 Segue um algoritmo que escreve os 100 primeiros números pares. PROGRAMA PARES_2; VAR I, PAR, CONTADOR : INTEIRO; INICIO CONTADOR := 0; PAR := 0; REPITA ESCREVER (PAR); PAR := PAR+2; CONTADOR := CONTADOR+1; ATE CONTADOR= FIM. A estrutura repita..até_que tem o seu funcionamento controlado por decisão. Porém, irá efetuar a execução de um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição estabelecida. Diferente da estrutura enquanto que executa somente um conjunto de instruções, enquanto a condição é verdadeira. Desta forma repita tem seu funcionamento em sentido contrário a enquanto , pois sempre irá processar um conjunto de instruções, no mínimo uma vez até que a condição se torne Verdadeira. Pra a estrutura repita um conjunto de instruções é executado enquanto a condição se mantém Falsa e até que ela seja Verdadeira.