Projeto e Análise de Algoritmos II – Aula 1 Prof. Esp. Jose Carlos Francisco dos Santos email: [email protected] fone: (43) 9998-9212 Sobre o Docente Graduado em Tecnologia em Processamento de Dados pela Universidade Norte do Parana (2003) , especialista em Administração Empresarial e Financeira pela Faculdades Integradas do Vale Ivaí (2005) e especialista em Administração, Supervisão e Orientação Educacional pela Faculdade Iguaçu (2006) . Atualmente é professor titular da Faculdade Iguaçu e Analista de sistemas do Instituto de Estudos Avançados e PosGraduação. Sobre a disciplina Conteúdo Material didático Avaliação Desenvolvimento projetos Responsabilidade e comprometimento dos alunos Sobre você Nome Trabalha? O que faz? Porque escolheu o curso de Sistema de Informação? Qual seu objetivo na disciplina? O que é Linguagem Programação? Linguagem de de programação é um conjunto de termos, expressões, símbolos e regras que podem ser entendidos pelo compilador, interpretador ou montador com o qual o programador se comunica com o computador. Exemplos de linguagem de programação: Pascal, Cobol, Fortran, Clipper, Dataflex, Delphi, Visual Basic, C++, Java, etc. O que é um programa? Programa é uma seqüência de instruções definidas pelo programador e escritas numa linguagem de programação, e que descreve o que o computador deve executar para a solução de um problema. A pessoa que escreve, testa e documenta estes programas é chamada de programador. História da linguagem Pascal Criada para ser uma ferramenta educacional, na década de 70 pelo Prof. Niklaus Wirth do Technical University em Zurique. Batizada como PASCAL, em homenagem matemático Blaise Pascal, inventor de uma das primeiras máquinas lógicas conhecidas. Nas suas primeiras implementações, Primeiro devia se escrever o programa em um editor de texto, depois compilá-lo, "lincá-lo" e montá-lo. Ao final do ano de 1983 a Borland Internacional, lançou o TURBO PASCAL para microcomputadores. Características Inovadoras do Pascal: estruturas de controle flexíveis; tipos definidos pelo utilizador; ficheiros; records; conjuntos. Estrutura de um programa em Pascal Cabeçalho do programa: área utilizada para fazer a identificação do programa. Program < nome do programa >; Área de Declarações: área utilizada para validar o uso de qualquer tipo de identificador que seja predefinido. Var < identificador > : < tipo >; Corpo do programa: área utilizada para escrever o programa que tem início com a instrução begin e é finalizada pela instrução end seguida de ponto-final. Begin e end caracterizam o que é chamado de bloco. O corpo do programa pode conter inúmeros blocos, dependendo da necessidade. Begin < Instruções > ; end. Exemplo de um programa em Pascal program estrutura; var i:integer; begin i:= 0; writeln ('MEU PRIMEIRO PROGRAMA EM EXECUÇÃO'); writeln (i); i:= i+1; writeln (i); i:= i+1; writeln (i); readln; End. Algoritmo x Pascal programa estrutura; var i:inteiro; inicio i:= 0; escreva ('MEU PRIMEIRO PROGRAMA EM EXECUÇÃO'); escreva (i); i:= i+1; escreva (i); i:= i+1; escreva (i); leia; Fim. program estrutura; var i:integer; begin i:= 0; writeln ('MEU PRIMEIRO PROGRAMA EM EXECUÇÃO'); writeln (i); i:= i+1; writeln (i); i:= i+1; writeln (i); readln; End. Operador + / * mod div + - Operadores Aritméticos Operação Prioridade Matemática Manutenção de sinal (número positivo) 1 Inversão de sinal (número negativo) 1 Divisão 2 Multiplicação 2 resto da divisão de um número pelo outro. 2 quociente da divisão inteira de um número pelo outro. 2 Adição 3 Subtração 3 Operadores Relacionais Símbolo = <> > < >= <= Significado igual a diferente de maior que menor que maior ou igual que menor ou igual que Operadores Lógicos - Tabelaverdade Resultado Condição 1 Condição 2 Falsa Verdadeira Falsa Verdadeira Falsa Falsa Verdadeira Verdadeira Condição Verdadeira Falsa And (conjunção - ) Falso Falso Falso Verdadeiro not (negação - ) Falso Verdadeiro Or (disjunção - ) Falso Verdadeiro Verdadeiro Verdadeiro Exercício - 1 Dado um número inteiro positivo n, calcular a soma dos 4 primeiros números naturais posteriores ao n. Exemplo: n = 4 imprimir = 26 (5+6+7+8) Tipos de Dados Tipo de dado inteiro Shortint Integer Longint Byte Word Faixa de Abrangência -128 até 127 -32.768 até 32.767 -2.147.483.648 até 2.147.483.647 0 até 255 0 até 65535 Nº de bytes 1 byte 2 bytes 4 bytes 1 byte 2 bytes Tipo de dado real Real Single Double Extended Comp Faixa de Abrangência 2,9 E –39 até 1,7 E +38 1,5 E –45 até 3,4 E +38 5,0 E –324 até 1,7 E + 308 3,4 E –4.932 até 1,1 E +4.932 -9,2 E + 18 até 9,2 E + 18 Nº de bytes 6 bytes 4 bytes 8 bytes 10 bytes 8 bytes Tipo de dado caractere String Char Faixa de Abrangência 1 até 255 caracteres Apenas 1 caractere Nº de bytes 2 a 256 bytes 1 byte Tipos lógicos boolean Faixa de Abrangência True ou False Nº de bytes 1 byte Variáveis e Constantes Armazena programa. Um temporariamente as informações de um ou mais caracteres Primeiro caractere não poderá ser um número, sempre deverá ser uma letra Não poderá possuir espaços em branco Não poderá ser palavras reservadas a uma instrução ou identificador de uma linguagem de programação Não poderá ser usado outros caracteres que não sejam letras, número ou caractere underscore “_“ Declaração de Variáveis < nome da variável > : < tipo de dado > ; Declaração São de Constantes valores fixos, estáveis dentro de um programa. Comando de Atribuição Permite fornecer um valor a uma certa variável onde o tipo dessa informação deve ser compatível com o tipo da variável. Sintaxe: < identificador > := < expressão >; Units As Units são um conjunto de rotinas prontas para serem usadas. Uma Unit é uma biblioteca de funções e procedimentos. A unit mais usada é a CRT que possui a maior parte das rotinas e variáveis de geração de som, controle de vídeo e teclado. Uses < nome da unit >; Comando Readln Leva os dados digitados no teclado à memória principal, armazenando-os nas variáveis especificadas na lista de identificadores. Sintaxe: Readln (< lista de identificadores >); Comando Write e Writeln Envia dados especificados na lista de identificadores para um dispositivo de saída: impressora, vídeo. Write – mantém o cursor na mesma linha após a impressão Writeln – leva o cursor para a linha seguinte, coluna 1, após a impressão. Sintaxe: Write (< lista de identificadores e/ou constantes e/ou expressões >) ; Writeln (< lista de identificadores e/ou constantes e/ou expressões >) ; Dinâmica - Algoritmos Dê soro a cada 1h; Dê o remédio 2 vezes ao dia; Alimente-o bem; Etc; Calcule 2²; Calcule 5³; Etc; ...Readln (n); Writeln (n*n); Readln (n); Write (n*n*n);.... ...veja o sistema tem que fazer esses cálculos e me mostrar em forma de relatório; Vai ter que mostrar na tela quanto eu tenho na minha conta bancária.... Exercício - 2 Dado uma sequência de 4 números inteiros positivos n, mostrar os seguintes calculos: 1º n: multiplicar por 5 e somar com o dobro do resultado; 2º n: somar com o quadrado de n; 3º n: mostrar n menos o 2º n; 4º n: multiplicar n por 2 e o resultado por 6; Comando Clrscr Limpa o vídeo, colocando o cursor na linha 1, coluna 1. Sintaxe: Clrscr; Comando Gotoxy Posiciona o cursor no vídeo na coluna e na linha indicada no comando. O vídeo é dividido em 80 colunas e 25 linhas. Sintaxe: Gotoxy (< col >, < lin >); Tabulação dos dados de saída Coloca-se “:n” após a variável onde n é o deslocamento a partir da posição corrente do cursor. Para valores reais, podemos determinar a quantidade de casas decimais que serão exibidas, colocando-se mais uma seqüência “:n”. < Variável >:n:n Estrutura de Seleção Permite a escolha de um grupo de ações e estruturas a ser executado quando determinadas condições, representadas por expressões lógicas, são ou não satisfeitas. Sintaxe: If < condição > then Begin < instrução 1 >; < instrução 2 >; end else Begin < instrução 1 >; < instrução 2 >; end; ** Obs.: O comando antes do else não possui “;” porque else é uma extensão da instrução If .. then, sendo assim o final da condição somente ocorre após o processamento da instrução else. Estrutura de Repetição While … do Consiste numa estrutura que permite executar diversas vezes um mesmo trecho do algoritmo, porém sempre verificando antes de cada execução se a condição para a repetição é verdadeira, pois só executa um determinado conjunto de instruções enquanto a condição verificada for verdadeira. Quando a condição se torna falsa, a execução é desviada para fora do laço. While < (Condição) > do Begin < instruções para condição verdadeira >; end; Repeat ... Until Permite que um mesmo trecho do algoritmo seja repetido até uma determinada condição seja verdadeira, ou seja, executa um conjunto de instruções enquanto a condição se mantém Falsa e até que ela seja Verdadeira, sempre verificando a condição após cada execução. Irá efetuar a execução de um conjunto de instruções pelo menos uma vez antes de verificar a validade da condição estabelecida. Repeat < instruções até que a condição seja verdadeira >; until < (Condição) >; For Repete a execução um número finito de vezes, pois possui limites fixos. For < variável > := < início > Begin < instruções >; end; to < fim > do