algoritimos delphi e c++ apostila

Upload: rogerio-alves-da-silva

Post on 10-Jul-2015

439 views

Category:

Documents


1 download

TRANSCRIPT

___________________________________________________________________________________________

ALGORITMOS EM DELPHI E C++ ___________________________________________________________________________________________

1. CONCEITOS BSICOS1.1. Viso Geral de um Computador

Hardware Software de controle Sistema operaciona l Computador Software Aplicativo Linguagem de programa o Linguagem de mquina L.P. Linguagem de baixo nivel Assembly Linguagens de alto nivel Pascal, Delphi, Fortran, Visual Basic, C, C + +, Java, etc 1.2. Termos Freqentemente Usados1.2.1. Algoritmo Descrio passo a passo do processo a ser utilizado na soluo de um problema. Ex. 1: Calcular a rea de um tringulo Comandos: Ler, Calcular, Escrever Ler o valor da base Ler o valor da altura Calcular a rea Escrever o resultado Ex. 2: Rob vai comprar po Comandos: ir, pegar e entregar Pegar o dinheiro Ir a padaria Entregar o dinheiro Pegar o po Ir para casa Entregar o po

1.2.2. Programa Codificao de um algoritmo em uma linguagem de programao. Linguagem de Programao Programa Executvel (Aplicativo)

Problema Algoritmo Programa Fonte

Soluo

1.2.3. Sintaxe Conjunto de regras que constituem a linguagem de programao, palavras utilizadas, operadores, etc. 1.2.4. Fluxo de Informaes Seqncia em que as instrues de um algoritmo so realizadas para resolver um problema. Ler as informaes Entrada de dados Processar as informaes Mostrar os resultados Sada de dados

1

1.3. Desenvolvimento de Algoritmos necessrio conhecer o que o computador dispe para a formulao de um algoritmo.

1.3.1. Constantes So valores especficos que no se modificam durante a execuo de um algoritmo. a) Constantes inteiras: Ex.: b) Constantes reais: Ex.: 0 32 -651 SEM Expoente 100.0 0.45 -0.357

COM Expoente 1.0 E +2 4.5 E -1 -357.0 E -3

c) Constantes caracteres: Ex.: J 1 ?

d) Constantes literais (strings): Utiliza-se aspas simples em Delphi e aspas dupla em C++. Ex.: Jos Uma frase qualquer 570

e) Constantes lgicas: Ex.: Verdadeiro (1) Falso (0)

1.3.2. Variveis So valores armazenados na memria do computador que podem ser alterados durante a execuo do algoritmo. A memria do computador pode ser vista como um armrio com diversas gavetas, onde as informaes so guardadas. Cada gaveta possui um nome que identifica a informao armazenada, chamada de varivel.

As variveis armazenadas na memria podem ser dos seguintes tipos: a) Inteiro: b) Real: c) Caractere: d) String: e) Lgico: Notao: Algoritmo Delphi C++ Real Real double Inteiro Integer int Caractere Char char String String char[] Lgico Boolean Verdadeiro True 1 ( 0) Falso False 02

qualquer nmero Z.

Ex.: -3; 5; 1000; 1; 0 Ex.: 1.5; 3.2; -3.1415; 2.0 Ex.: *; -; A ... Z; a ... z; 0 ... 9 Ex.: vasco; flamengo ; Ex.: True ( 1 ), False ( 0 )

qualquer nmero R. qualquer smbolo do teclado. conjunto de caracteres. verdadeiro ou falso.

1.3.3. Operadores So smbolos representando funes que podem ser realizadas com constantes e variveis. a) Operadores Aritmticos: implementam as funes aritmticas. Delphi + * / div mod C++ + * / / % ++ Funo Adio Subtrao Multiplicao Diviso real Diviso inteira Resto da diviso inteira Incremento Decremento Delphi R, C, S R R R C++ I, R, C I, R, C I, R, C R I, C I, C I, R, C I, R, C

I, I, I, I, I I

Exemplos em Delphi Exemplos corretos: 2+3=5 2.3 + 3.4 = 5.7 2 + 3 = 23 A + 2 = A2 bota + fogo = botafogo 3.0 + 2 = 5.0 ABC + D = ABCD 2 - 3 = -1 5.2 - 1.2 = 4.0 3 * 4 = 12 4 / 3 = 1.333 7 mod 2 = 1 7 div 2 = 3 Erros: botafogo - fogo 12 - 1 1 * 3 VASCO * 5 PELE / XUXA 5.2 mod 2 10 div 3.5 RIO + 2004 Resumo: I+I I+R R+R C+C C+S S+S I-I I-R R-R I*I I*R R*R I/I I/R R/R I mod I I div I = = = = = = = = = = = = = = = = = I R R S S S I R R I R R R R R I I

Exemplos em C++ Exemplos corretos: 2+3=5 2.3 + 3.4 = 5.7 2 + 3 = 101 A + 2 = 115 3.0 + 2 = 5.0 2 - 3 = -1 5.2 - 1.2 = 4.0 3 * 4 = 12 4/3=1 7%2=1 7/2=3 8++ = 9 8-- = 7 Erros: bota + fogo = botafogo botafogo fogo 12 - 1 ABC + D = BCD VASCO * 5 PELE / XUXA 5.2 % 2 RIO + 2004 Resumo: I+I I+R R+R C+C I-I I-R R-R I*I I*R R*R I/I I/R R/R I%I = = = = = = = = = = = = = = I R R I I R R I R R I R R I

3

b) Operadores Relacionais: so usados para comparao entre tipos compatveis de dados. Delphi = >= < C++ == != >= < Funo Igual Diferente Maior ou igual Menor ou igual Maior Menor Delphi Todos Todos Todos Todos Todos Todos C++ R, C R, C R, C R, C R, C R, C

I, I, I, I, I, I,

Obs.: Em Delphi, o resultado por operadores relacionais sempre um valor lgico Verdadeiro ou Falso. Em C++, o resultado um valor inteiro 0 ou 1. Exemplos em Delphi Exemplos corretos: 2=3 2 3 3.5 > 4 6.2 b A < a macaco > banana macaco > macaca M > MACACO AB > A Exemplos em C++ Exemplos corretos: 2 == 3 2 != 3 3.5 > 4 6.2 b A < a 1 == 1 3 >= a 0 1 0 1 0 1 0 0 Erros: 3.5 < macaco 4 == abc macaco > banana macaco > macaca M > MACACO AB > A F V F V F V V V F V Erros: 1 = 1 3.5 < macaco 3 >= a 4 = abc

c) Operadores Lgicos: implementam as funes lgicas bsicas. Delphi and or not C++ && || ! Funo E (Conjuno) OU (Disjuno) NO (Negao) Delphi Lgico Lgico Lgico C++ I, R, C I, R, C I, R, C

Obs.: Em Delphi, o resultado por operadores relacionais sempre um valor lgico Verdadeiro ou Falso. Em C++, o resultado um valor inteiro 0 ou 1. CONJUNO - Operador E X F F V V Y F V F V XEY F F F V

4

DISJUNO - Operador OU X F F V V NEGAO - Operador NO X F V Exemplos em Delphi (3 > 2) and (B < C) (5.3 < 3) or (eu > EU) (2 2) or (20 < 10) (2 > 3) or (10 < 20) True or (10 > 20) Not (10 > 20) Not (macaco > banana) Not (True) Exemplos em C++ 3 > 2 && B < C 2 != 2 || 20 < 10 2 > 3 || 10 < 20 1 || 10 > 20 ! (10 > 20) !1 1 0 1 1 1 0 V V F V V V F F NO X V F Y F V F V X OU Y F V V V

1.4. Prioridade nas Operaes1.4.1. Delphi As operaes aritmticas, relacionais e lgicas so executadas obedecendo a uma certa ordem de prioridade, conforme a seguir: a) As operaes comeam a ser executadas da esquerda para a direita. b) So resolvidas primeiramente as operaes entre parnteses, partindo do mais interno para o mais externo. c) Graus de prioridade dos operadores Operadores Aritmticos e Lgicos Negao (Lgico) Multiplicao e diviso Quociente da diviso inteira e resto da diviso inteira Conjuno (Lgico) Adio e Subtrao Disjuno (Lgico) Operadores Relacionais Todos no mesmo nvel ( not ) (* /) ( div ) ( mod ) ( and ) (+ -) ( or )

5

1.4.2. C++ As operaes aritmticas, relacionais e lgicas so executadas obedecendo a uma certa ordem de prioridade, conforme a seguir: a) As operaes comeam a ser executadas da esquerda para a direita. b) So resolvidas primeiramente as operaes entre parnteses, partindo do mais interno para o mais externo. c) Graus de prioridade dos operadores Operadores Aritmticos e Lgicos Negao (Lgico) Multiplicao e diviso Adio e Subtrao Operadores Relacionais Menor, Menor Igual, Maior, Maior Igual Igual, Diferente Operadores Lgicos Conjuno (Lgico) Disjuno (Lgico)

(!) (* /%) (+ -)

(< >=) (== !=)

( && ) ( || )

1.5. Declarao de VariveisNo incio dos algoritmos (e dos programas), necessrio informar ao computador as variveis que sero utilizadas no decorrer do algoritmo. Cada varivel deve possuir um nome (chamado de identificador) e um tipo de dado, que informa o tipo de valor armazenado na memria. A operao de informar as variveis do algoritmo chamada de declarao de variveis. Ex.: Declarao de variveis base, altura, area nome teste i, j : Real; : String; : Lgico; : Inteiro;

Regras bsicas para formao de nomes de variveis: Iniciar-se por uma letra ou pelo caractere underscore _ Ter um tamanho definido e constante Conter letras ou algarismos No conter espaos em branco Obs: Em C++, as variveis e os comandos da linguagem so sensveis ao caso, ou seja, h diferena entre variveis com identificadores em maisculo e em minsculo.

1.6. Comandos Bsicos1.6.1. Comando de Atribuio usado para dar um valor a uma varivel. Comando de Atribuio Algoritmo Delphi C++ Smbolo := =

6

Ex.:

Declarao de variveis X, Y A P, Q, U K S X 0; Y X + 1; P 1.0; Q Y; U raiz(P); S Brasil; A ; K Falso; : Inteiro; : Caractere; : Real; : Lgico; : String; // X recebe o valor zero inteiro // Y recebe o valor de x mais um // P recebe o valor um real // Q recebe o valor, inteiro, de Y // U recebe o valor da raiz quadrada de P // S recebe a string Brasil // A recebe o espao em branco // K recebe o valor lgico F

1.6.2. Comando de Entrada de Dados usado para ler um valor do teclado e armazenar em uma varivel. Entrada de Dados Algoritmo Delphi C++ Ex.: Leia (base); Leia (altura); Smbolo Leia(Variavel) Readln(Variavel) cin >> Variavel

1.6.3. Comando de Sada de Dados usado para mostrar na tela um texto (constante string) ou o valor de uma varivel. Sada de Dados Algoritmo Delphi C++ Ex.: Escreva (Eu sou eu, jacar um bicho); Escreva (area); Smbolo Escreva(Varivel ou Texto) Writeln(Variavel ou Texto) cout base; cout > altura; area = base * altura / 2; cout n2; m = (n1 + n2) / 2; cout 2 A > 2 CEFET > UFRN CEFET F) ou (2 < 1) No ( 10,0 < 3) No ( No (10,0 < 3)) (2 > 3) ou ( 3 > 2)

2. Implementar algoritmos para a) Calcular a rea e o permetro de um retngulo. Dados: base e altura. b) Calcular a mdia final de uma disciplina. Dados: notas dos 4 bimestres. c) Calcular a nota necessria para passar por mdia no 4 bimestre. Dados: notas dos 3 primeiros bimestres. d) Calcular a quantidade de dinheiro gasta por um fumante. Dados: o nmero de anos que ele fuma, o n de cigarros fumados por dia e o preo de uma carteira.

10

2. ESTRUTURAS DE CONTROLE DE FLUXOSo utilizadas para controlar o fluxo de execuo dos comandos em um algoritmo ou programa.

2.1. Estruturas CondicionaisPermitem controlar a execuo ou no de um comando ou bloco de comandos. 2.1.1. Alternativa Simples (SE) Realiza um teste para determinar se um comando ou um bloco de comandos executado. Algoritmo Se Teste Ento Comando; Se Teste Ento Incio Bloco de Comandos Fim; Delphi if Teste then Comando; if Teste then begin Bloco de Comandos end; C++ if (Teste) Comando; if (Teste) { Bloco de Comandos; }

Algoritmo 03: Verifica se um valor maior que zero. Declarao de variveis X : Inteiro; Incio Escreva (Digite um nmero); Leia (X); Se X > 0 Ento Escreva (Nmero maior que zero); Fim. Delphi program Delphi_Alg03; {$APPTYPE CONSOLE} uses SysUtils; var x : integer; begin writeln('Digite um numero'); readln(x); if x > 0 then writeln('Numero maior que zero'); readln; end. C++ #include #include #include int x; int main(int argc, char **argv) { cout > x; if (x > 0) cout x; if (x % 2 == 0) cout