Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Lógica de Programação Profª Soraia Rocha * * * Diretrizes para construção de algoritmos Identificação do problema; Identificação das “entradas de dados”; Identificação das “saídas de dados”; Identificação de regras do problema; Determinar o que fazer para transformar as “entradas” em “saídas” - Processamento; Obedecer regras e limitações; Determinar ações possíveis de serem realizadas. Construção do algoritmo; Teste de solução. * * * O Primeiro Programa Problema Efigênia e Cristóvão querem calcular a média de dois números inteiros por meio de um computador Eles sabem como calcular média à mão, mas não sabem usar computador Para tanto, pediram ajuda da Turma INF 1304 * * * O Primeiro Programa Solução A média é uma estatística muito utilizada na prática, quando se quer representar por apenas um valor um conjunto de valores numéricos Uma forma fácil de estimar a média de um conjunto de dados numéricos é somar todos os dados e, depois, dividir essa soma pelo número de dados do conjunto No nosso caso, temos apenas dois dados o que torna a solução mais fácil ainda * * * Algoritmo da Solução Entre com os dois números no computador Calcule a soma dos dois números Calcule a média dos números Imprima a média * * * O Alfabeto do Pascal Palavras-chaves Elas são: div, mod, nil, in, or, and, not, if, then, else, case, of, repeat, until, while, do, for, to, downto, begin, end, with, goto, const, var, type, array, record, set, file, function, procedure, label, packed, program As palavras-chaves da linguagem Pascal são reservadas A linguagem Pascal não distingue letras maiúsculas de minúsculas * * * Números Os números podem ser representados em Pascal em duas formas: inteiros reais Um número inteiro pode ser positivo, negativo ou zero Um número inteiro é escrito como uma seqüência de dígitos que pode ser precedida por um sinal, + ou - * * * Identificadores Exemplos de identificadores válidos I ovni PC49 umnomelongodefato Exemplos de identificadores inválidos 1abc erva-doce $100 * * * Identificadores Padrões Existem alguns identificadores que são pré-declarados em qualquer implementação do Pascal padrão Eles são: * * * Cadeias de Caracteres Uma seqüência de caracteres entre apóstrofes - ASPAS SIMPLES, PLICS ou PLICAS - forma uma cadeia de caracteres Pode ser chamada também pelo nome em inglês: string Exemplos de cadeias 'Isto é um exemplo de cadeia' '?' 'Seu nome é Joana D''Arc' * * * Comentários São frases colocadas por todo um programa com o objetivo de explicar ou clarear partes do código-fonte Eles vêm entre chaves { e }, ou, às vezes, (* e *) Não devem ser sucedidos de “;” Comentários são completamente ignorados pelos compiladores Sua função é apenas aumentar a clareza e documentar um programa * * * Estrutura Básica de um Programa em Pascal program identificador; parte_das_declarações begin parte_dos_comandos end. O <bloco> é formado por: declarações begin sequência de comandos end * * * Tipos de Dados - Primitivos Os tipos primitivos da linguagem Pascal são: Inteiro, denotado pelo identificador padrão integer Real, denotado pelo identificador padrão real Caracter, denotado por char Lógico, denotado por boolean * * * Declaração de Variáveis Sintaxe var lista_de_variáveis : tipo; lista_de_variáveis : tipo; ... lista_de_variáveis : tipo; Semântica As variáveis da lista de variáveis são criadas com o respectivo tipo e associadas (amarradas) aos respectivos nomes * * * Declaração de Variável Exemplos var x : integer; a, b : char; area, perimetro : real; temTelefone : boolean; * * * O Primeiro Programa Problema Efigênia e Cristóvão querem calcular a média de dois números inteiros por meio de um computador Eles sabem como calcular média à mão, mas não sabem usar computador Para tanto, pediram ajuda da Turma INF 1304 * * * Programa da Solução program Media; { Calcula a média de dois números inteiros. } var x, y : integer; m : real; begin { Lê dois números inteiros. } { Calcula a média dos números. } { Imprime a média. } end. * * * Criação de Variáveis A partir do momento em que uma variável é criada, ela já possui um valor Em Pascal, o valor inicial de qualquer variável é indefinido, mas ele existe Na prática, chamamos este valor inicial arbitrário de lixo Logo toda variável deve ser inicializada depois com algum valor desejado e conhecido Este valor inicial conhecido pode ser modificado durante a execução do programa * * * Destruição de Variáveis Uma variável deixa de existir quando o bloco de programa ou de subprograma em que ela foi criada termina de ser executado No nosso caso, por enquanto, o único bloco que conhecemos é o do programa Ao ser executado o último comando de um programa, toda a memória que foi alocada para o nosso programa é liberada para o sistema operacional e assim as variáveis do programa são destruídas * * * Comandos Os comandos têm a função essencial de manipular e alterar o estado armazenado nas variáveis Existem vários comandos em Pascal, porém o mais fundamental de todos é o comando de atribuição O comando de atribuição modifica explicitamente o valor que uma variável armazena * * * Comando de Atribuição Sintaxe variável := expressão Semântica A expressão que aparece do lado direito do operador de atribuição,:=, é avaliada. O valor resultante da avaliação é então atribuído à variável que aparece do lado esquerdo Isto é, o valor atual da variável é reposto pelo novo valor resultante da avaliação da expressão * * * Comando de Atribuição O comando de atribuição destrói o valor corrente armazenado na variável —obviamente, ele não destrói a variável O valor da expressão passa a ser o novo valor armazenado na variável Exemplos a := 3.52 a := b*b*b j := j + 1; p := (j > 0) or (c <> ' ') c := '.' * * * Exercício Suponha que as variáveis x, y e w abaixo sejam do tipo inteiro. Determine o valor final de cada uma delas, após a execução da seguinte seqüência de comandos de atribuição: x := 27; y := 343; w := x + y - 300; x := w div 10 + 23; y := (x + w) div 10 * 10; x := x + 70 + y mod 10; w := w + x - 70 * * * Entrada e Saída Simples de Dados Dentre os comandos simples da linguagem, podemos considerar os de entrada e saída de dados Na realidade, em Pascal, a entrada e a saída são realizadas por meio de chamadas de procedimentos padrões Por detrás, esses procedimentos de entrada/saída utilizam estruturas de arquivo para realizar as operações * * * Saída de Dados Qualquer informação produzida por um computador fica conhecida por nós somente se for realizada alguma operação de saída Em Pascal, podemos realizar uma saída de dados por meio dos procedimentos padrões: write writeln * * * Procedimento write O procedimento write pode ser usado na forma mais simples assim: Sintaxe write( lista_de_saída ) Semântica A lista de saída será impressa ou exibida na ordem dada. A lista de saída pode conter variáveis, constantes ou, genericamente, qualquer expressão do tipo inteiro, real, booleano, caracter ou cadeia * * * Procedimento write Exemplos write( a, b, c + 1 ) write( 2*x + 7 ) write(a, b, c + 1 ) write(2*x + 7 ) write( 'a = ', x*x - 2*x - 5 ) * * * Procedimento writeln O procedimento writeln é semelhante ao write, exceto que, ao ser exibido ou impresso o último elemento da lista de saída, um fim-de-linha será acrescentado ao arquivo de saída O procedimento writeln aceita a seguinte forma em que não aparece a lista de saída Sintaxe writeln * * * Exercício O que vai ser exibido ao ser executada a seguinte seqüência de comandos? writeln( 'A', 'B' ); write( 'C' ); writeln( 'D' ); writeln; writeln( 'E' ) * * * Saída Formatada A linguagem Pascal permite uma capacidade limitada de formatação do texto de saída por meio dos procedimentos write ou writeln A cada valor de saída podemos acrescentar até dois sufixos separados pelo símbolo especial dois-pontos Sintaxe valor_de_saída : largura_do_campo : comprimento_da_fração * * * Saída Formatada Exemplo Suponha que a variável a seja do tipo real e contenha o valor -0.357000000E+02 * * * O Primeiro Programa Problema Efigênia e Cristóvão querem calcular a média de dois números inteiros por meio de um computador Eles sabem como calcular média à mão, mas não sabem usar computador Para tanto, pediram ajuda da Turma * * * Programa da Solução program Media; { Calcula a média de dois números inteiros. } var x, y : integer; m : real; begin { Lê dois números inteiros. } writeln( 'Digite dois números inteiros:' ); { Calcula a média dos números. } { Imprime a média. } writeln( 'A média deles é ', m ); end. * * * Entrada de Dados Toda informação que quisermos passar para o computador é realizada por meio dos procedimentos: read readln A entrada padrão de dados é mediada pelo arquivo padrão input O arquivo padrão input assume que a entrada é realizada por meio de texto digitado a priori, ou digitado interativamente durante a execução do programa * * * Procedimento read O procedimento read pode ser usado na sua forma mais simples assim: Sintaxe read( lista_de_variáveis ) Semântica O computador vai obter da entrada padrão a quantidade requerida de dados e atribuir a cada variável da lista, na ordem dada, o valor respectivo obtido * * * Procedimento read Exemplos read( a ) read( alfa, beta, gama ) read( input, a ) read( input, alfa, beta, gama ) A chamada read( v1, v2, v3, ..., vn ) é equivalente a read( v1 ); read( v2 ); read( v3 ); ...; read( vn ) * * * O Primeiro Programa Problema Efigênia e Cristóvão querem calcular a média de dois números inteiros por meio de um computador Eles sabem como calcular média à mão, mas não sabem usar computador Para tanto, pediram ajuda da Turma INF 1304 * * * Programa da Solução program Media; { Calcula a média de dois números inteiros. } var x, y : integer; m : real; begin { Lê dois números inteiros. } writeln( 'Digite dois números inteiros:' ); readln( x, y ); { Calcula a média dos números. } m := (x + y)/2; { Imprime a média. } writeln( 'A média deles é ', m ); end. * * * Projeto de Programação Problema Queremos calcular a área e o perímetro de um círculo dado seu raio Análise do problema O cálculo da área e do perímetro de um círculo já foi bem estudado pela geometria, desde a época dos gregos antigos Descobriu-se que estes cálculos envolviam o número irracional * * * Projeto de Programação Análise (cont.) Dado o comprimento do raio r de um círculo, temos que sua área A e seu perímetro P são dados pelas fórmulas: * * * Projeto de Programação Algoritmo Dados raio do tipo real área do tipo real perímetro do tipo real Leia o raio do círculo Calcule a área Calcule o perímetro Imprima a área e o perímetro * * * Implementação * * * Testes ____________________________________________ Entre com o raio do círculo: 2 A área do círculo é: 1.256637061435917E+001 O perímetro é: 1.256637061435917E+001 ____________________________________________ Entre com o raio do círculo: 3 A área do círculo é: 2.827433388230814E+001 O perímetro é: 1.884955592153876E+001 * * * Exercícios Escrever um algoritmo para ler o salário mensal e um valor de reajuste (ambos em R$). Calcular e escrever o valor do novo salário. Escrever um algoritmo para ler o salário mensal (R$) e o percentual de reajuste (%). Calcular e escrever o valor do novo salário. Faça um programa que leia três valores em variáveis distintas e armazene a soma em outra variável. Escreva o valor da soma. * * * Um motorista de taxi deseja calcular o rendimento de seu carro na praça. Sabendo-se que o preço do combustível é de R$0,90, escreva um algoritmo para ler a marcação do odômetro no início do dia, a marcação no final do dia, o número de litros de combustível gasto e o valor total (R$) recebido dos passageiros. Calcular e escrever a média do consumo em Km/l e o lucro líquido do dia. * * * Solução – Calcular Reajuste Salário R$ program reajusteemperc; var sl_mensal, reajuste, nv_salario : real; Begin writeln (‘Informe o salário mensal: ‘); read(sl_mensal); writeln (‘Informe o valor do reajuste em R$: ‘); read(reajuste); nv_salario := sl_mensal + reajuste; writeln(‘O novo salário ‚: ‘,nv_salario); End. * * * Solução Calcular Reajuste Salário - % program reajusteemperc; var sl_mensal, reajuste, nv_salario : real; Begin writeln (‘Informe o salário mensal: ‘); read(sl_mensal); writeln(‘Informe o valor do reajuste em % ‘); read(reajuste); nv_salario := ((sl_mensal * reajuste) / 100) + sl_mensal; writeln(‘O novo salário ‚: ‘,nv_salario); End * * * Solução - Média Program media; var a, b, c, soma : real; Begin writeln('Informe o valor de A: '); read(a); writeln('Informe o valor de B: '); read(b); writeln('Informe o valor de C: '); read(c); soma := a+b+c ; writeln('A soma dos valores ‚: ',soma); End. * * * Solução program voudetaxi; var kminicial, kmfinal : integer; litros, vl_recebido, media, lucro : real; begin writeln('Informe a kilometragem inicial: '); read(kminicial); writeln('Informe a kilometragem final: '); read(kmfinal); writeln('Informe quantidade de combustível gasto: '); read(litros); writeln('Informe o valor total recebido: '); read(vl_recebido); media := (kmfinal - kminicial)/litros; lucro := vl_recebido - (litros * 0.90); writeln('A média do carro ‚: ',media); writeln('O lucro l¡quido ‚: ',lucro); end.
Compartilhar