Você está na página 1de 47

Computao Bsica

Computao Bsica
Disciplina 116301

Prof. Alexandre Zaghetto


zaghetto@gmail.com

Universidade de Braslia Instituto de Cincias Exatas Departamento de Cincia da Computao

Computao Bsica

O Conceito de Algoritmo

Computao Bsica

1. O Conceito de Algoritmo Conhecimento declarativo: declarativo: Corpo organizado de informaes factuais (o que ) ). . Ex.: Ex.: O bolo comum a massa de bolo bsica para confeitar ou rechear. rechear. tambm um excelente acompanhamento para caf ou ch. ch.

05/04/2011

Computao Bsica

1. O Conceito de Algoritmo Conhecimento imperativo: imperativo: o que se manifesta da execuo de uma tarefa (como fazer). fazer) . Ex.: Ex.: Bolo comum: comum:
1. Bater o acar e a manteiga, com a essncia de baunilha at branquear. branquear. 2. Acrescentar as gemas uma a uma, batendo sempre, at levantar bolhas. bolhas. 3. Peneirar a farinha, a maizena e o fermento e ir acrescentando pouco a pouco, alternando com o leite, sem parar de bater. bater. 4. Em separado, bater as claras em neve, com a pitada de sal. sal. 5. Misturar as claras delicadamente mistura 6. Assar em forma untada e polvilhada com farinha de trigo, em forno mdio, por aproximadamente 40 minutos. minutos.
05/04/2011 4

Computao Bsica

1. O Conceito de Algoritmo Alan Turing (1912 - 1954), 1954), matemtico britnico, descreve em 1936 uma mquina terica, conhecida como Mquina de Turing, capaz de realizar qualquer tarefa computvel, desde que execute adequadamente uma determinada seqncia de instrues. instrues. Esse seqncia de instrues chamada de algoritmo. Em 1938 1938, , foi recrutado criptogrfica do governo. governo. pelo departamento de anlise

Conseguiu decifrar o cdigo da mquina de criptografia Enigma, que a Alemanha de Hitler usava para mandar mensagens militares cifradas durante a guerra. guerra.
05/04/2011 5

Computao Bsica

1. O Conceito de Algoritmo Graas ao sistema de decodificao que ele criou, o Reino Unido passou a interceptar as mensagens e localizar os submarinos alemes, atacandoatacando-os e revertendo o avanar da guerra. guerra . Mas seu trabalho era secreto, e os feitos de Turing passaram sem aclamao na poca. poca. Colossus Colossus: :

05/04/2011

Computao Bsica

1. O Conceito de Algoritmo Como homossexual, no publicamente humilhado. humilhado. incio dos anos 1950 foi

Perdeu o acesso de segurana aos laboratrios onde trabalhava porque, sob a mentalidade da Guerra Fria corrente, homossexuais eram uma brecha na segurana. segurana. Condenado a terapias base de estrognio, o que, de fato, equivalia a castrao qumica e que teve o humilhante efeito secundrio de lhe fazer crescer seios. seios. Em 8 de junho de 1954, 1954, um criado de Turing encontrou encontrou-o morto em sua residncia em Wilmslow, Wilmslow, Cheshire Cheshire. . Um exame postpost-mortem estabeleceu que a causa da morte foi envenenamento por cianeto. cianeto.
05/04/2011 7

Computao Bsica

1. O Conceito de Algoritmo O conceito central da programao computao o de algoritmo. e da cincia da

Um algoritmo a descrio de um padro de comportamento, expresso em termos de um repertrio bem definido e finito de aes "primitivas", das quais damos por certo que elas podem ser executadas. executadas. Introduziremos de forma intuitiva a noo de algoritmo, motivando ao mesmo tempo as estruturas bsicas de controle (seqncia simples, alternativa e repetio) como formas de raciocnio "naturais "naturais. .

05/04/2011

Computao Bsica

1. O Conceito de Algoritmo

Linguagem Natural

Algoritmo

Linguagem de Programao

Linguagem de Mquina

05/04/2011

Computao Bsica

2. Algoritmos NoNo-Computacionais Seqncia Simples

"traga a cesta com batatas do poro"; "traga a panela do armrio"; "descasque as batatas"; devolva a cesta ao poro;

05/04/2011

10

Computao Bsica

2. Algoritmos NoNo-Computacionais Alternativas

"traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; "descasque as batatas"; "devolva a cesta ao poro;

05/04/2011

11

Computao Bsica

2. Algoritmos NoNo-Computacionais Repeties "traga a cesta com batatas do poro"; "traga a panela do armrio"; se "saia clara" ento "coloque avental"; "descasque uma batata"; "descasque uma batata"; ... (50 vezes) "descaque uma batata"; "devolva a cesta ao poro

05/04/2011

12

Computao Bsica

2. Algoritmos NoNo-Computacionais Repeties "traga a cesta com batatas do poro"; poro"; "traga a panela do armrio"; armrio"; se "saia clara" ento "coloque avental"; avental"; se "nmero de batatas insuficiente" ento "descasque uma batata" batata"; ; se "nmero de batatas insuficiente" ento "descasque uma batata"; batata"; ...( ...(50 vezes) se "nmero de batatas insuficiente" ento "descasque uma batata"; batata"; "devolva a cesta ao poro; poro;

05/04/2011

13

Computao Bsica

2. Algoritmos NoNo-Computacionais Repeties "traga a cesta com batatas do poro"; poro"; "traga a panela do armrio"; armrio"; se "saia clara" ento "coloque avental"; avental"; enquanto "nmero de batatas insuficiente" faa "descasque uma batata" batata"; ; "devolva a cesta ao poro; poro;

05/04/2011

14

Computao Bsica

3. Algoritmos Computacionais Um algoritmo computacional instrues que manipula dados. dados. uma seqncia de

Instrues: comandos que determinam a forma pela qual os dados devem ser tratados. tratados. Dados: informaes recolhidas/fornecidas por diversos meios e que sero processadas pelo computador atravs das instrues. instrues .

05/04/2011

15

Computao Bsica

3. Algoritmos Computacionais At certa parte do curso vamos implementar algoritmos computacionais utilizando o PORTUGOL e a linguagem de programao C. Depois de um tempo, vamos abandonar o PORTUGOL e permanecer apenas com o C. Existem vrias verses de PORTUGOL PORTUGOL. . A linguagem C foi proposta por Brian Kernighan and Dennis Ritchie entre o final da dcada de 1960 e incio da dcada de 1970. 1970.

05/04/2011

16

Computao Bsica

3. Algoritmos Computacionais A linguagem foi padronizada pelo ANSI (American National Standards Institute) no final da dcada de 1980 e ficou conhecida como ANSI C. Desde ento sofreu vrias alteraes. alteraes. The Spirit of C: Trust the programmer. programmer. Dont prevent the programmer from doing what needs to be done. done. Keep the language small and simple. simple. Provide only one way to do an operation. operation. Make it fast, even if it is not guaranteed to be portable. portable .

05/04/2011

17

Computao Bsica

3. Algoritmos Computacionais As 32 palavras reservadas definidas no ANSI C:

05/04/2011

18

Computao Bsica

3. Algoritmos Computacionais Identificadores Identificadores: : nomes (rtulos) atribuidos s variveis, funes e estruturas de dados que so utilizados em algoritmos. algoritmos . Regras para formao de identificadores: identificadores:
o primeiro caractere deve ser, obrigatoriamente, uma letra; letra; do segundo caractere em diante so permitidos nmeros e letras; letras ; o smbolo de sublinhado (_) pode ser usado para separar nomes compostos; compostos; no so permitidos espaos, caracteres acentuados e smbolos especiais na composio do nome de um identificador; identificador; palavras reservadas no podem ser usadas (ver slide anterior); anterior) ; h distino entre maisculo e minsculo. minsculo.

05/04/2011

19

Computao Bsica

3. Algoritmos Computacionais Identificadores Exemplos vlidos: vlidos:


DataNascimento DATA_DE_NASCIMENTO IDADE Nota1 Nota 1 TRABALHO2 TRABALHO 2 PESO

Exemplos invlidos: invlidos:


3CD Meu Nome Idade& DA*TA

05/04/2011

20

Computao Bsica

3. Algoritmos Computacionais Varivel Varivel: : um espao reservado na memria do computador para armazenar um determinado tipo de dado. dado. Devem receber identificadores para poderem referenciadas e modificadas quando necessrio. necessrio. ser

Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e s vezes um valor inicial. inicial. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante. instante.

05/04/2011

21

Computao Bsica

3. Algoritmos Computacionais Varivel

Memria 27 71.5 ALEXANDRE . . . Idade Massa Nome

05/04/2011

22

Computao Bsica

3. Algoritmos Computacionais Tipos bsicos de varivel em Portugol

inteiro: nmero inteiro, negativo, nulo ou positivo. positivo. Ex.: Ex.: -15 15, , 0, 101 positivo. Ex.: Ex.: -1, real: nmero real, negativo, nulo ou positivo. -0.5, 0, 5, 9.5 caracter: conjunto de caracteres alfanumricos. alfanumricos. Ex.: Ex.: AB, 123, 123, A A123 123 , CASA logico: conjunto de valores FALSO ou VERDADEIRO em proposies lgicas. lgicas.

05/04/2011

23

Computao Bsica

3. Algoritmos Computacionais Tipos bsicos de varivel em C (por enquanto isso basta, depois veremos muito mais!): mais!): int: nmero inteiro, negativo, nulo ou positivo. positivo. Ex.: Ex.: 15 15, , 0, 101 float: nmero real, negativo, nulo ou positivo. positivo. Ex.: Ex.: 1, -0.5, 0, 5, 9.5 char: apenas um nico caracter alfanumrico. alfanumrico. Ex.: Ex.: A, 3, 2 , d

05/04/2011

24

Computao Bsica

3. Algoritmos Computacionais Estrutura bsica de um algoritmo computacional em Portugol: Portugol : algoritmo nome_do_algoritmo" // Seo de Declaraes var <declarao de variveis> // Seo de Comandos inicio <comandos> fimalgoritmo
05/04/2011 25

Computao Bsica

3. Algoritmos Computacionais Estrutura bsica de um algoritmo computacional em C: #include <stdio.h> #include <stdlib.h> int main() { // Seo de Declaraes <declarao de variveis> // Seo de Comandos <comandos> system("PAUSE"); return 0; }
05/04/2011 26

Computao Bsica

3. Algoritmos Computacionais Declarao de variveis em Portugol: Portugol: algoritmo declaravariaveis" // Seo de Declaraes var inteiro: idade, num_de_filho real: peso, altura // Seo de Comandos inicio <comandos> fimalgoritmo

05/04/2011

27

Computao Bsica

3. Algoritmos Computacionais Declarao de variveis em C: #include <stdio.h> #include <stdlib.h> int main() { int idade, num_de_filho; float peso, altura; // Seo de Comandos <comandos> system("PAUSE"); return 0; }
05/04/2011 28

Computao Bsica

4. Algoritmos Computacionais: Operadores Operador de atribuio: atribuio: Operador = Ao Atribuio

Idade = 30 30; ; a = b = 1.5;

05/04/2011

29

Computao Bsica

4. Algoritmos Computacionais: Operadores Operadores aritmticos: aritmticos: Operador + * / % -++ Ao Subtrao, tambm menos unrio Adio Multiplicao Diviso Mdulo da diviso (resto) Decremento Incremento

05/04/2011

30

Computao Bsica

4. Algoritmos Computacionais: Operadores Precedncia dos operadores aritmticos: aritmticos: Operador ++ -*/% +Precedncia Mais alta . . Mais baixa

Operadores do mesmo nvel de precedncia so avaliados pelo compilador da esquerda para a direita. direita. ATENO Em qualquer caso, os parnteses so sempre os campees!
05/04/2011 31

Computao Bsica

4. Algoritmos Computacionais: Operadores Menos unrio: unrio: Operador num1 num 1= -num; num; Ao Menos unrio

05/04/2011

32

Computao Bsica

4. Algoritmos Computacionais: Operadores Operadores aritmticos: aritmticos: Operador + * / delta = b*b 4*a*c; Ao Subtrao Adio Multiplicao Diviso

05/04/2011

33

Computao Bsica

4. Algoritmos Computacionais: Operadores Operadores aritmticos: aritmticos: Operador % num = 17 17% %5; Ao Mdulo da diviso (resto)

05/04/2011

34

Computao Bsica

4. Algoritmos Computacionais: Operadores Operadores aritmticos de atribuio: atribuio: Operador a+=b a-=b a*=b a /=b a%=b Ao a=a+b a=ab a = a*b a = a/b a = a%b

a += 2; equivale a a = a + 2;

05/04/2011

35

Computao Bsica

4. Algoritmos Computacionais: Operadores Operadores de incremento e decremento: decremento: Operador -++ a++; ou a++; a +=1 +=1; ou a = a + 1; b = ++a ++a; ; difere de a--; --; ou a -=1; ou a = a - 1; b = --a --a; difere de
05/04/2011

Ao Decremento Incremento

b = a++; a++;

b = a--; --;
36

Computao Bsica

5. Algoritmos Computacionais: Funes Algumas funes teis teis: : Funo pow(a,b) sqrt(a) Ao ab (a^b)

a (a1/2 ou a^(1/2) )

ATENO operadores. operadores .

As funes tm prioridade sobre os outros

05/04/2011

37

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :


( x +1) 3 x 2x 2 + 2

x +1 x

05/04/2011

38

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :


( x +1) 3 x 2x 2 + 2

x +1 x

2*pow(x,2) 3*pow(x,x+1)/2 + sqrt(x+1)/x

05/04/2011

39

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

45 2h 4h(3 h) 3x

22 k

05/04/2011

40

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

45 2h 4h(3 h) 3x

22 k

2*h - pow( 45/(3*x) - 4*h*(3 4*h*(3-h), 22*k )

05/04/2011

41

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

(9,e))/(u u-sqrt(89)) a+b+(34+pow(9,e))/(

05/04/2011

42

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

(9,e))/(u u-sqrt(89)) a+b+(34+pow(9,e))/(

a+b+

34 + 9 e u 89

05/04/2011

43

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

(pow(a+x, 2+w) 3*a)/2

05/04/2011

44

Computao Bsica

6. Operadores e Funes: Exemplos Exemplos Exemplos: :

(pow(a+x, 2+w) 3*a)/2

(a + x) 2+ w 3a 2

05/04/2011

45

Computao Bsica

7. Entrada e Sada de Dados Sada de dados (via monitor): monitor): Em Portugol: Portugol: escreva() escreva("Sua idade :", idade, "anos."); Em C: printf() printf("Sua idade : %d anos. \n", idade); printf("Sua altura : %f metros. \n", altura); printf("A letra : %c. \n", letra);

\n

Nova linha

05/04/2011

46

Computao Bsica

7. Entrada e Sada de Dados Entrada de dados (via teclado): teclado): Em portugol: portugol: leia() (idade); ; leia(idade) leia(altura) (altura); ; (letra); ; leia(letra) Em C: scanf() scanf("%d", &idade); scanf("%f", &altura); scanf("%c", &letra);

05/04/2011

47

Você também pode gostar