Вы находитесь на странице: 1из 44

Algoritmos e Programao

AULA 01 Introduo: histria e conceitos bsicos

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Histria
!s ancestrais do com"utador
M uinas de calcular: * baco (China - 2 2 a!C a "#$ d!C!%& 'erramenta para au(iliar c)lculos aritm*ticos * Pascaline (Blaise +ascal - s*c ,-%& opera.es de soma e subtrao * Calculador diferencial (Charles Babba/e - s*c ,-000%& calculava polin1mios por meio de cart.es per'urados * Mquina de Hollerith (2erman 2ollerith - s*c ,0,%& processador de dados arma3enados em cart.es per'urados! Foi empre/ada no processamento de dados do censo de "#4 ! 5 2ollerith 'undou a empresa conhecida ho6e como 0B7
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Histria
!s ancestrais do com"utador
Computadores pro/ram)veis: * 890:C (Eletronic Numeric Integrator And Calculator, 8U:, "4$;%& primeiro computador pro/ram)vel de prop<sito /eral 5 Composto por "=!$># v)lvulas, =!2 "!; rels, = ! resistores e " ! capacitores diodos,

5 +esava 2= toneladas, media 2!$ ( !4 ( ? m e consumia "> @A de potncia 5 Capa3 de e(ecutar ;! opera.es aritm*ticas por se/undo, mas suas v)lvulas Bueimavam com tanta 'reBuncia Bue ele era operacional apenas ; C do tempo

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Histria
!s ancestrais do com"utador
Computadores pro/ram)veis e peri'*ricos: * Transistor ("4$=%& permitiu o pro6eto de computadores menores e mais conD)veis! E primeiro main'rame transistori3ado colocado no FmercadoF 'oi o 0B7 = 4 , em "4;4 * Circuito integrado ("4>$%& permitiu a construo de computadores menores e mais baratos! Computadores comearam a ser peBuenos o suDciente para serem embutidos em sat*lites artiDciais! Um dos primeiros lanamentos com essa tecnolo/ia 'oi o 0B7 ?> * Mouse ("4>#%, disquete ("4="%, A le II ("4==%

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Histria
!s ancestrais do com"utador
Computadores de Buarta /erao: * Micro rocessadores (d*cada de # %& miniaturi3ao dos circuitos inte/rados * I!M"PC ("4#"%& primeiro computador pessoal vendido em lar/a escala! :liana entre 0B7 e 7icroso't * #indo$s e #ord ("4#?%, Macintosh ("4#$%, #indo$s %&' ("44 %, (inu) ("44"%, !!!

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Histria
#ecnologia atual
8voluo nas Gltimas duas d*cadas& * Micro rocessadores e nano rocessadores 5 *is ositi+os m,+eis com alto oder de rocessamento 5 Ca acidade de arma-enamento raticamente ilimitada 5 Po ulari-a./o da Internet 5 Noteboo0s, microboo0s, tablets 5 A arelhos eletr1nicos ganham grande oder de rocessamento2 T3s, geladeiras, micro"ondas, mquinas de la+ar, 4 5 5ob1s e carros roboti-ados 5 &&&
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

$e%ni&es
Princi"ais com"onentes
Processador (C+U% * Unidade& 2ert3 (H i/ual a Buantidade de opera.es por se/undo! "I23 J " 4 operKse/% Mem,ria rinci al (L:7% * Unidade& BMte (capacidade de arma3enamento! "IB J "
4

B%

Mem,ria secundria (dispositivos de arma3enamento% * Unidade& Bit (capacidade de arma3enamento! "NB J " "2 B% *is ositi+os de entrada e sa6da *emais erif7ricos Hard$are ( 8oft$are
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

!rgani'ao bsica
Ar uitetura de hard(are

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

!rgani'ao bsica
*uncionamento
Oesde a d*cada de = , o paradi/ma de uso do computador envolve a e(ecuo simultPnea de diversos pro/ramas! 0sto * obtido dele/ando a /erncia dos recursos do computador a um so'tQare especial chamado )istema !"eracional 9este modelo, os pro/ramas no acessam os dispositivos do computador diretamente, mas sim atrav*s do SE, Bue evita conRitos de uso simultPneo! 8mbora o acesso S mem<ria se6a direto, cada pro/rama FvF apenas um pedao da mem<ria do computador e acessa apenas a re/io Bue lhe 'oi alocada pelo SE

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e Programao

PA+#, 01 Algoritmos e "rogramao: introduo

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Algoritmo --- Programao -- 9osso interesse neste curso * aprender a escrever "rogramas de computadores Bue implementam algoritmos para resolver "roblemas especTDcos Um "rograma * uma seBuncia de instru.es em al/uma lin/ua/em compreendida pelo computador! +ro/ramas utili3am a C+U para reali3ar opera.es matem)ticas e manipular dados e, atrav*s do sistema operacional, intera/em com os dispositivos do computador Um algoritmo * uma seBuncia Dnita de instru.es bem deDnidas e no ambT/uas para resolver um problema ou reali3ar al/um ob6etivo

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Algoritmo . e/em"lo 1
+roblema& somar trs nGmeros * :l/oritmo +asso " - Leceber os trs nGmeros +asso 2 - Somar os trs nGmeros +asso ? - 7ostrar o resultado obtido

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Algoritmo . e/em"lo 0
+roblema& 'a3er um lanche com po, maionese, al'ace, tomate e hambGr/uer * :l/oritmo +asso " - +e/ar o po +asso 2 - Cortar o po ao meio +asso ? - +e/ar a maionese +asso $ - +assar a maionese no po +asso ; - +e/ar e cortar al'ace e tomate +asso > - Colocar al'ace e tomate no po +asso = - +e/ar o hambGr/uer +asso # - Fritar o hambGr/uer +asso 4 - Colocar o hambGr/uer no po
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

Algoritmos e "rogramao
Algoritmo . e/em"lo 1
+roblema& sacar dinheiro no banco 2$ horas * :l/oritmo +asso " - 0r at* o banco 2$ horas +asso 2 - Colocar o carto +asso ? - Oi/itar a senha +asso $ - Consultar saldo +asso ; - Se saldo 'or maior ou i/ual a Buantia dese6ada, sacarU caso contr)rio, sacar valor i/ual ao saldo +asso > - Letirar carto +asso = - Sair do banco 2$ horas

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
2aracter3sticas
:ssim como problemas podem ser resolvidos de maneiras distintas, os al/oritmos tamb*m podem ser di'erentes para um mesmo problema Passos "ara a construo de ual uer algoritmo: * Compreender completamente o problema, destacando os ob6etos Bue o
comp.em * OeDnir os dados de entrada * OeDnir o processamento (c)lculos e restri.es% respons)vel pela trans'ormao dos dados de entrada em dados de saTda * OeDnir os dados de saTda * Construir o al/oritmo * -alidar por meio de simula.es

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos
$,)2+I45! 6A++A#I7A
* Soluo (passo-a-passo% escrita em lin/ua/em natural
5 -anta/em& no * necess)rio aprender nenhum conceito novo 5 Oesvanta/em& ocorrncia de ambi/uidades

*LU8!9+AMA * : soluo * e(pressa por sTmbolos /r)Dcos pr*-deDnidos


5 -anta/em& compreenso mais simples Bue te(to 5 Oesvanta/em& necess)rio aprender a simbolo/iaU ausncia de detalhes Bue podem diDcultar a implementao

P),U$!2:$I9! !U P!+#U9!L
* : soluo (passo-a-passo% * e(pressa por meio de re/ras pr*-deDnidas 5 -anta/em& implementao * Buase imediata 5 Oesvanta/em& aprender as re/ras do pseudoc<di/o
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: multiplicar dois nGmeros Algoritmo * Oescrio 9arrativa
+asso " - Leceber os dois nGmeros Bue sero multiplicados +asso 2 - 7ultiplicar os nGmeros +asso ? - 7ostrar o resultado obtido

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: multiplicar dois nGmeros Algoritmo * Flu(o/rama

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: multiplicar dois nGmeros Algoritmo * +seudoc<di/o
INICIO VARIAVEL INTEIRO N1, N2, M ESCREVER "Digite dois nmeros: " LER N1, N2 M <- N1 * N2 ESCREVER "Resultado = ", M FIM

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: dividir dois nGmeros Algoritmo * Oescrio 9arrativa
+asso " - Leceber os dois nGmeros Bue sero divididos +asso 2 - Se o se/undo nGmero 'or i/ual a 3ero, no poder) ser 'eita a divisoU caso contr)rio, dividir os nGmeros e mostrar o resultado

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: dividir dois nGmeros Algoritmo * Flu(o/rama

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: dividir dois nGmeros Algoritmo * +seudoc<di/o
INICIO VARIAVEL INTEIRO N1, N2, D ESCREVER "Digite dois nmeros: " LER N1, N2 SE N2 = 0 ENTAO ESCREVER "Imposs el di idir!" SENAO D <- N1 " N2 ESCREVER "Resultado = ", D FIMSE FIM
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular m*dia aritm*tica entre duas notas e mostrar situao Algoritmo * Oescrio 9arrativa
+asso " - Leceber duas notas +asso 2 - Calcular a m*dia +asso ? - 7ostrar a m*dia +asso $ - Se m*dia 'or maior ou i/ual a =, ento a situao * i/ual a a ro+adoU caso contr)rio, a situao * re ro+ado

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular m*dia aritm*tica entre duas notas e mostrar situao Algoritmo * Flu(o/rama

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular m*dia aritm*tica entre duas notas e mostrar situao Algoritmo * +seudoc<di/o
INICIO VARIAVEL INTEIRO N1, N2 VARIAVEL REAL M ESCREVER "Digite duas notas: " LER N1, N2 M <- #N1 $ N2%"2 ESCREVER "Media = ", M SE M &= ' ENTAO ESCREVER "\n(pro ado" SENAO ESCREVER "\nRepro ado" FIMSE FIM
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular novo sal)rio de um 'uncion)rio! Funcion)rios Bue recebem atualmente sal)rio de at* LV ; , tero aumento de 2 CU os demais tero aumento de " C Algoritmo * Oescrio 9arrativa
+asso " - Leceber o sal)rio atual do 'uncion)rio +asso 2 - Se o sal)rio atual 'or de at* LV ; , , calcular o novo sal)rio com percentual de aumento de 2 CU caso contr)rio, calcular o novo sal)rio com percentual de aumento de " C +asso ? - 7ostrar o novo sal)rio

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular novo sal)rio de um 'uncion)rio! Funcion)rios Bue recebem atualmente sal)rio de at* LV ; , tero aumento de 2 CU os demais tero aumento de " C Algoritmo * Flu(o/rama

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular novo sal)rio de um 'uncion)rio! Funcion)rios Bue recebem atualmente sal)rio de at* LV ; , tero aumento de 2 CU os demais tero aumento de " C Algoritmo * +seudoc<di/o
INICIO VARIAVEL REAL )(*+(,-(*, N./.+)(* ESCREVER "Digite o salario atual: " LER )(*+(,-(* SE )(*+(,-(* <= 000 ENTAO N./.+)(* <- )(*+(,-(* * 1!2 SENAO N./.+)(* <- )(*+(,-(* * 1!1 FIMSE ESCREVER "No o salario = ", N./.+)(* FIM
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

Algoritmos e "rogramao
#i"os de algoritmos . e/em"lo
Problema: calcular novo sal)rio de um 'uncion)rio! Funcion)rios Bue recebem atualmente sal)rio de at* LV ; , tero aumento de 2 CU os demais tero aumento de " C Algoritmo * +seudoc<di/o
2omandos de sa3da e entrada< res"ecti;amente INICIO VARIAVEL REAL )(*+(,-(*, N./.+)(* ESCREVER "Digite o salario atual: " LER )(*+(,-(* SE )(*+(,-(* <= 000 ENTAO N./.+)(* <- )(*+(,-(* * 1!2 SENAO N./.+)(* <- )(*+(,-(* * 1!1 FIMSE ESCREVER "No o salario = ", N./.+)(* FIM
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

7ari;eis e ti"o

2omando condicional

2omandos de atribuio

Algoritmos e "rogramao
7ari;eis
Oados Bue so processados pelo pro/rama (entrada, saTda, au(iliar etc% * 8m pseudoc<di/os, so opcionalmente precedidas pela palavra-chave /(RI(/1*, se/uindo a se/uinte sinta(e& /(RI(/1* 2,I3.4 nome_var1, nome_var2 [TIPO] nome_var1, nome_var2 <- [VALOR] 2aracter3sticas * Nome ou identi9cador (Gnico e no vari)vel durante a e(ecuo%! E)istem restri.:es ara nomes2 es a.os, iniciar com n;meros, caracteres es eciais e ala+ras reser+adas * ,I3. (no vari)vel durante a e(ecuo% * Conte;do (vari)vel durante a e(ecuo% - s< pode arma3enar um valor de determinado ,I3. por ve3 * Possui um endereo =nico e consecuti;o na memria "rinci"al
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

Algoritmos e "rogramao
#i"os de ;ari;eis
INTEIRO * -alores ordinais (limitados entre& -2!"$=!$#?!>$# e 2!"$=!$#?!>$=% REAL * -alores reais (limitados entre& -"!= ( " LOGICO * +ode assumir valor erdadeiro ou 5also (" bit% CARACTER * Caracteres da Nabela :SC00 ( ()6II#0% a ()6II#200%%! 8(& 789 TEXTO * +ode arma3enar um caractere ou uma cadeia de caracteres! +ode conter letras maiGsculas, minGsculas, nGmeros e caracteres especiais (W, X, V, C, Y, Z, [ etc%! 8(& 7aluno9, 712:;9, 7< internet9, 70!:;9 Tiago Almeida
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

-? #

e "!= ( "

? #

Algoritmos e "rogramao
Pseudocdigo: "arte 1
,strutura
INICIO VARIAVEL ,I3. variveis 8lo=o de =omandos FIM

$eclarao de ;ari;eis
VARIAVEL INTEIRO > VARIAVEL REAL /(*.R <- 10!?, ,otal LOGICO ,1),1 <- erdadeiro TEXTO 6or <- 7(marelo9, Nome <- 7Mar=os da )il a9 CARACTER )e@o <- 7M9
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Pseudocdigo: "arte 1
2omando de atribuio >?.@
> <- ; > <- > $ 2 6.R <- 7aCul9 ,1),1 <- 5also

2omando de entrada
LER > LER A, B

2omando de sa3da

ESCREVER A ESCREVER 7,e@to9 ESCREVER 76ontedo de A = 7, A

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
2onstante
Usadas para arma3enar valores Bue no se alteram durante a e(ecuo do pro/rama! 9ormalmente so empre/adas em diversas partes do c<di/o! Sempre devem ser iniciali3adas!
CONSTANTE 2,I3.4 2nome4 <- 2 alor4 CONSTANTE 2,I3.4 2nome4 <- 2e@pressDo4 CONSTANTE 2,I3.4 2nome4 <- 2 alor4 ,2nome4 <- 2e@pressDo4

8(emplos
CONSTANTE INTEIRO M1)1) <- 12 CONSTANTE REAL 3I <- :!1;

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
!"eradores AritmAticos
IN,1IR.
$ " * F (diEDo )u8traEDo Di isDo inteira Multipli=aEDo Resto da di isDo inteira

R1(*

$ " *

(diEDo )u8traEDo Di isDo Multipli=aEDo

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
!"eradores +elacionais
Letorna 1 (/1RD(D1IR.% ou 0 (G(*).%
= ="= & &= < <= Igual Di5erente Maior Maior ou igual Menor Menor ou igual

8(emplos

INTEIRO a <- 10, 8 <- 20 LOGICO R R R R R R R <<<<<<a a a a a a = 8 ="= 8 & 8 &= 8 < 8 <= 8
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
!"eradores Lgicos
Letorna " (verdade% ou
E OU NAO

('also%

DisHunEDo 6onHunEDo NegaEDo

8(emplos

INTEIRO a <- 10, 8 <- 20 LOGICO *1, *2, *: *1 <- #a & 0% OU #8 < 10% *2 <- #a = 8% E #8 < 10% *: <- NAO *1

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
2omandos de )eleo
SE
SE 2=ondiEDo4 ENTAO 2instruEIes4 SENAO 2instruEIes4 FIMSE

8(emplo

INICIO INTEIRO numero, r ESCREVER JIn5orme um numero: J LER numero r <- numero F 2 SE r = 0 ENTAO ESCREVER JNumero parJ SENAO ESCREVER JNumero imparJ FIMSE FIM
Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba
Tiago Almeida

Algoritmos e "rogramao
2omandos de )eleo
ESCOLHE
ESCOLHE 2e@pressDo+04 CASO 21@pressDo+1o4,! ! !,21@pressDo+1n4,: 2instruEIes4 ! ! ! ! ! ! ! ! ! ! ! CASO 21@pressDo+no4,! ! !,21@pressDo+nn4,: 2instruEIes4 DEFEITO: 2instruEIes4 FIMESCOLHE

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
2omandos de )eleo
ESCOLHE * 8(emplo
INICIO CARACTER se@o ESCREVER JKual o seu se@o :J LER se@o ESCREVER J.lL J ESCOLHE se@o CASO JmJ, JMJ : ESCREVER J(lunoJ CASO J5J, JGJ : ESCREVER J(lunaJ DEFEITO : ESCREVER J)e@o inde5inidoJ FIMESCOLHE ESCREVER J, 8em- indo#a% M -G)6ar!J FIM
Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e Programao

AULA 01 Portugol I$,

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Portugol I$,
:mbiente de aprendi3a/em de al/oritmos desenvolvido pelo 0nstituto +olit*cnico de Nomar, +ortu/al Site oDcial& Nttp:""OOO!dei!estt!ipt!pt"portugol"node"2

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e "rogramao
Lightbot
\o/o estilo u--le para aprendi3ado de l</ica e al/oritmos Site oDcial& Nttp:""ligNt-8ot!=om"No=5lasN!Ntml

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Algoritmos e Programao

PA+#, 01 ,/erc3cios

Tiago Almeida

Bacharelado em Cincia da Computao Universidade Federal de So Carlos - UFSCar, Sorocaba

Вам также может понравиться