Generalidades MC933. Pré-requisitos e objetivos. Tomasz Kowaltowski. Copyright c 2014 Tomasz Kowaltowski. Universidade Estadual de Campinas

Tamanho: px
Começar a partir da página:

Download "Generalidades MC933. Pré-requisitos e objetivos. Tomasz Kowaltowski. Copyright c 2014 Tomasz Kowaltowski. Universidade Estadual de Campinas"

Transcrição

1 Tópicos em Ciência da Computação MC933 Tomasz Kowaltowski Instituto de Computação Universidade Estadual de Campinas Copyright c 2014 Tomasz Kowaltowski Instituto de Computação Universidade Estadual de Campinas Estas transparências somente podem ser copiadas para uso pessoal dos docentes e alunos das disciplinas oferecidas pelo Instituto de Computação da UNICAMP. tomasz c 2014 T. Kowaltowski Tópicos em Ciência da Computação 1 c 2014 T. Kowaltowski Tópicos em Ciência da Computação 2 Pré-requisitos e objetivos Generalidades Pré-requisito: alguma familiaridade com sistemas computacionais: arquivos, pastas (diretórios), edição de textos (revisão). Objetivos: Noções de algoritmos Fundamentos de programação numa linguagem de alto nível (Python) Utilização de pacotes prontos para aplicações de alguma área específica (linguística computacional) Observações: Disciplina experimental O ritmo dependerá (em parte) do andamento Material adicional será distribuído ao longo do semestre c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 3 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 4

2 Avaliação Média final A avaliação será feita através de uma série de 8 a 10 tarefas de programação de entrega obrigatória através do sistema de submissão SuSy. A nota de aproveitamento no semestre será dada média das notas de laboratório: n i=1 A = t i n onde n é o número de tarefas de laboratório, t i (0 t i 10) é a nota obtida na i-ésima tarefa. A média final na disciplina será dada por: { (A + E)/2 se o aluno fez o exame final F = A caso contrário onde E é a nota obtida no exame. 1. A nota mínima para aprovação na disciplina será 7,0. 2. Não terão direito ao exame final alunos com média A inferior a 2,5. Exame final: 15 de janeiro c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 5 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 6 Informações complementares: Observações: Material Bibliografia indicada Cópias das transparências (quando houver) Gravações das aulas (se possível) Informações, notas e avisos: Sistema SuSy: Entrega de tarefas pela Internet: Logins, s e senhas da DAC Tarefa 00: apenas para verificação Todas as tarefas de laboratório obrigatórias são individuais. Será estabelecido um limite para o número de submissões de cada tarefa de laboratório (em geral, 10 submissões). A submissão de uma tarefa de laboratório poderá ser considerada rejeitada se não seguir estritamente as exigências do enunciado, mesmo que produza resultados corretos nos testes. Qualquer tentativa de fraude nas provas ou nas tarefas de laboratório implicará em aproveitamento zero no semestre para todos os envolvidos, sem prejuízo de outras sanções. As transgressões às regras de uso dos sistemas computacionais implicarão em aproveitamento zero no semestre para todos os envolvidos, sem prejuízo de outras sanções. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 7 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Generalidades 8

3 Bibliografia c 2014 T. Kowaltowski Tópicos em Ciência da Computação Bibliografia 9 Python 3.4 documentation The Python Tutorial Documentação Python 2.7 O tutorial de Python 2.7 (em português) Josh Cogliati et al. Non-Programmer s Tutorial for Python 3 Non-Programmer s_tutorial_for_python_3 Nilo Ney Coutinho Menezes Introdução à Programação com Python 2 a Edição Editora Novatec, Steven Bird, Edward Loper, and Ewan Klein. Natural Language Processing with Python O Reilly Media Inc, c 2014 T. Kowaltowski Tópicos em Ciência da Computação Bibliografia 10 Algoritmos Algoritmo: receita para resolver um problema. Introdução Exemplo: algoritmo de Euclides para calcular o máximo divisor comum (MDC) de dois números inteiros positivos, usando apenas subtrações: MDC: dados x >0, y>0 enquanto x é d i f e r e n t e de y : s e x>y : adote x = x y sen ão : adote y = y x r e s u l t a d o x Exemplo: 63 e 81: x y Resultado final: 9 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 11 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 12

4 Programa Euclides em Python3 Um algoritmo é especificado numa linguagem estilizada, usando notação matemática, mas informal. Programa: implementação de um algoritmo numa linguagem de programação específica. Existem muitas linguagens de programação; serão exibidos alguns exemplos. x = 63 y = 81 w h i l e x!=y : i f x>y : x = x y e l s e : y = y x p r i n t ( x ) enquanto x é d i f e r e n t e de y : s e x>y : adote x = x y sen ão : adote y = y x c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 13 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 14 Euclides em Java Euclides em C #i n c l u d e <s t d i o. h> p u b l i c c l a s s e u c l i d e s { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { i n t x =63, y =81; } } w h i l e ( x!=y ) { i f ( x>y ) x = x y ; e l s e y = y x ; } System. out. p r i n t l n ( x ) ; void main ( ) { i n t x =63, y =81; } w h i l e ( x!=y ) { i f ( x>y ) x = x y ; e l s e y = y x ; } p r i n t f ( %d\n, x ) ; c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 15 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 16

5 Euclides em Pascal e em Fortran Euclides em linguagem de montagem (assembly) (cont.) program E u c l i d e s ; var x, y : i n t e g e r ; begin x := 6 3 ; y := 8 1 ; w h i l e i f w r i t e l n ( x ) end. x<>y do x>y then x := x y e l s e y := y x ; PROGRAM EUCLIDES INTEGER : : X=63, Y=81 DO WHILE (X/=Y) IF (X>Y) THEN X = X Y ELSE Y = Y X END IF END DO PRINT, X END PROGRAM EUCLIDES. LC0 : main :. LFB0 :. f i l e e u c l i d e s. c. s e c t i o n. r o d a t a. s t r i n g %d\n. t e x t. g l o b l main. t y p e f u n c t i o n. c f i s t a r t p r o c p u s h l %ebp. c f i d e f c f a o f f s e t 8. c f i o f f s e t 5, 8 movl %esp, %ebp. c f i d e f c f a r e g i s t e r 5 a n d l $ 16, %esp s u b l $32, %esp movl $63, 24(% esp ) movl $81, 28(% esp ) jmp. L2. L4 :. L3 :. L2 : movl 24(% esp ), %eax cmpl 28(% esp ), %eax j l e. L3 movl 28(% esp ), %eax s u b l %eax, 24(% esp ) jmp. L2 movl 24(% esp ), %eax s u b l %eax, 28(% esp ) movl cmpl j n e 24(% esp ), %eax 28(% esp ), %eax. L4 movl $. LC0, %eax movl 24(% esp ), %edx movl %edx, 4(% esp ) movl %eax, (%esp ) c a l l p r i n t f l e a v e. c f i r e s t o r e 5. c f i d e f c f a 4, 4 r e t. c f i e n d p r o c c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 17 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 18 Exemplo: análise sintática com NLTK Uma gramática muito simples: Ora ç ão > S u j e i t o P r e d i c a d o S u j e i t o P r e d i c a d o Objeto S u j e i t o > Nome A r t i g o S u b s t a n t i v o Objeto > Nome A r t i g o S u b s t a n t i v o A r t i g o > um o Nome > Jo ão Jos é S u b s t a n t i v o > c ão gato l i v r o P r e d i c a d o > Verbo Verbo > v ê l ê l e v a compra vende c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 19 Análise sintática (cont.) O programa usa o pacote NLTK (Natural Language Tool Kit): import n l t k g r a m a t i c a = n l t k. p a r s e c f g ( ) Ora ç ão > S u j e i t o P r e d i c a d o S u j e i t o P r e d i c a d o Objeto S u j e i t o > Nome A r t i g o S u b s t a n t i v o Objeto > Nome Artigo Substantivo A r t i g o > um o Nome > Jo ão Jos é S u b s t a n t i v o > c ão gato l i v r o P r e d i c a d o > Verbo Verbo > v ê l ê l e v a compra vende p r i n t ( g r a m a t i c a ) r d p a r s e r = n l t k. R e c u r s i v e D e s c e n t P a r s e r ( g r a m a t i c a ) w h i l e ( True ) : o r a = i n p u t ( >>>> ) i f not o r a : break p a r s e = r d p a r s e r. n b e s t p a r s e ( o r a. s p l i t ( ) ) i f l e n ( p a r s e )==0: p r i n t ( Não f o i p o s s í v e l a n a l i s a r a o r a ç ão ) e l s e : f o r t r e e i n p a r s e : p r i n t ( t r e e ) t r e e. draw ( ) p r i n t ( ) (Demonstrar parser port.py) c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 20

6 Análise sintática (cont.) Entrada: Jo~ao compra um livro Análise sintática (cont.) ( Ora ç ão ( S u j e i t o (Nome Jo ão ) ) ( P r e d i c a d o ( Verbo compra ) ) ( Objeto ( A r t i g o um) ( S u b s t a n t i v o l i v r o ) ) ) Entrada: Jo~ao compra livro Não f o i p o s s í v e l a n a l i s a r a ora ç ão c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 21 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 22 Análise sintática (cont.) Entrada: Jo~ao v^e José ( Ora ç ão ( S u j e i t o (Nome Jo ão ) ) ( P r e d i c a d o ( Verbo v ê ) ) ( Objeto (Nome Jos é ) ) ) Noções elementares de sistema c 2014 T. Kowaltowski Tópicos em Ciência da Computação Introdução 23 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 24

7 Estrutura de pastas (ou diretórios) Terminal /Applications... /Library... /Users (ou /home) /Joao /Maria /Applications... /Applications... /Downloads... /Downloads... /Mail... /Mail /MeusArquivos /MinhasPastas /Cursos /Cursos /MC933 /MC933 /Material... /Material... /Tarefas /Tarefas /lab00 /lab00 prog00.py prog00.py /lab01... /lab01... /IL /IL /Documentos... /IL c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 25 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 26 Terminal: comandos Execução de um programa em Python c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 27 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 28

8 Invocação de IDLE Execução em IDLE c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 29 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 30 Execução em IDLE (cont.) Variáveis, expressões e atribuições c 2014 T. Kowaltowski Tópicos em Ciência da Computação Noções elementares de sistema 31 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 32

9 Variáveis Visão (muito!) simplificada de um computador: unidade de processamento (CPU) memória principal (RAM) memória secundária (disco HD) memória externa (CDs, pendrive, etc) Variáveis: caixinhas localizadas na memória RAM que podem conter valores de vários tipos. Normalmente, as variáveis têm nomes. Exemplos: 63 x 2.38 media1 81 y media2 abracadabra senha -50 resultado Maria Nome João usuario 1 Bom Dia! bom dia Maria maria Paulo usuario 2 Maria nome João jose / / formato c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 33 Nomes de variáveis (identificadores) Qualquer sequência de letras (maiúsculas ou minúsculas), dígitos e símbolo (underscore). Não pode começar com um dígito. Não pode conter espaços. É frequente a utilização de nomes mnemônicos, isto é, que têm relação com o valor representado. Python 3 aceita letras com símbolos diacríticos (acentos, til, cedilha, etc.) mas é aconselhável evitá-los. Exemplos válidos: x nome de variavel usuario 2 especial x33 e outros já vistos. Exemplos inválidos: 21abc % x nome de variavel nome.de.variavel (O ponto pode aparecer em outros contextos.) c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 34 Expressões Denotam valores a serem determinados pelo programa: constantes Maria Bom dia! valores de variáveis x y nome cálculos aritméticos x +y (dist/vel hor) 60 concatenação de cadeias nome + + data de nasc aplicação de funções len(nome) int( 531 ) float( ) diversos 3 (len(nome)+int(fator)) 5 ab Obs.: 5 ab produz ababababab (coerente com a concatenação). Comandos de atribuição Forma geral mais simples: nome-de-variável = expressão Significado: a caixinha que corresponde a este nome-de variável recebe o valor determinado pela expressão. Exemplos: x = 63 y = 81 soma = x+y minutos = ( d i s t / v e l h o r ) 60 compr nome = l e n ( nome ) x = l e t r a x s = Bom d i a! c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 35 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 36

10 Exemplos de programas x = input ( v a l o r de x : ) x = i n t ( x ) y = input ( v a l o r de y : ) y = i n t ( y ) p r i n t ( v a l o r de x+y :, x+y ) input é uma função especial que devolve a cadeia fornecida pelo teclado. x = i n t ( input ( v a l o r de x : ) ) y = i n t ( input ( v a l o r de y : ) ) p r i n t ( v a l o r de x+y :, x+y ) p r i n t ( v a l o r de x+y :, i n t ( input ( v a l o r de x : ) ) + i n t ( input ( v a l o r de y : ) ) ) Tipos de valores Tipos numéricos: inteiros: fracionários (ou de ponto flutuante, ou reais) e e-5 Cadeias de caracteres (strings) Valores lógicos (ou booleanos) Constantes True e False Comparações; por ex.: x>y (valem também para cadeias) Listas e tuplas Objetos, mapeamentos,... A constante None denota um objeto que não tem nenhum valor (sic!). Os três programas são equivalentes. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 37 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 38 Operações e funções numéricas x + y soma x y subtração x y multiplicação x/y divisão x//y divisão inteira x % y resto da divisão x ( 1) x +x x x y abs(x) int(x) float(x) x y valor absoluto de x conversão para inteiro conversão para flutuante Operações e funções sobre cadeias s + t s n ou n s len(s) s[i] s[i : j] concatenação concatenação de n cópias de s comprimento de s i-simo caractere de s fatia (slice) de s A numeração de caracteres de uma cadeia começa com zero. s[i : j] denota a sequência de caracteres s[i],s[i+1],s[i+2],...,s[j 1]. Por exemplo, abcdefgh [2 : 6] = cdef. Existem muitas outras operações com cadeias a serem vistas mais adiante. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 39 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 40

11 Comparações e operações lógcas x == y igual x! = y diferente x < y menor x <= y menor ou igual x > y maior x >= y maior ou igual x or y se x é falso então y senão x (disjunção) x and y se x é falso então x senão y (conjunção) not x se x é falso então True senão False (negação) Comparações e operações lógcas (cont.) Comparações valem também para cadeias e utilizam a ordem lexicográfica (análoga à ordem alfabética, mas incluindo todos os símbolos). Exemplos: verdadeiro: a < ab abc > ab xy == x + y falso: a > ab a == A Expressões lógicas (ou booleanas) são utilizadas principalmente em comandos condicionais e repetitivos, mas podem também ser usados como quaisquer outras expressões, por exemplo em atribuições: p = (a b)>c and (d<f) Um valor numérico nulo ou uma cadeia vazia ( ) ou a constante None podem ser usados em lugar de falso (False). Um valor numérico não nulo ou uma cadeia não vazia podem ser usados em lugar de verdadeiro (True). c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 41 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Variáveis, expressões e atribuições 42 Comandos Comandos denotam ações a serem executadas, em contraposição às expressões que denotam valores a serem calculados. Comandos Comandos de atribuição (já vistos) Comandos condicionais Comandos repetitivos Chamadas de funções Tratamento de exceções Comandos especiais Obs.: Chamadas de funções podem ser consideradas comandos ou expressões, dependendo do contexto e se há um valor devolvido. Por exemplo, print(...) funciona como um comando. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 43 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 44

12 Comandos condicionais formato 1 Exemplo i f e x p r : comando 1 comando 2... comando n s a l a r i o = 2000 horas semana = 40 i d a d e = i n t ( input ( ) ) i f idade <18: ## menor de i d a d e s a l a r i o = 0.8 s a l a r i o horas semana = 20 p r i n t ( s a l a r i o, horas semana ) Significado: se o valor da expressão expr for verdadeiro, então será executada a sequência de comandos dada; caso contrário, os comandos não serão executados. Obs.: A sequência de comandos que segue if indentação alinhada.... precisa manter a c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 45 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 46 Comandos condicionais formato 2 Exemplo i f e x p r : comando a1 comando a2... comando an e l s e : comando b1 comando b2... comando bm i d a d e = i n t ( input ( ) ) i f idade <18: ## menor de i d a d e s a l a r i o = 1600 horas semana = 20 e l s e : ## maior de i d a d e s a l a r i o = 2000 horas semana = 40 p r i n t ( s a l a r i o, horas semana ) Significado: se o valor da expressão expr for verdadeiro, então será executada a sequência de comandos a1, a2,...; caso contrário, será executada a sequência de comandos b1, b2,... Obs.: Observe a indentação alinhada das duas alternativas. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 47 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 48

13 Comandos condicionais formato 3 i f e x p r 1 : comando 11 comando e l i f e x p r 2 : comando 21 comando e l i f e x p r 3 : comando 31 comando e l s e : comando 1 comando 2... Significado: Será executada a primeira alternativa cuja expressão produz o valor verdadeiro. A parte final else :... é opcional. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 49 Exemplo i d a d e = i n t ( input ( ) ) i f idade <14: ## t r a b a l h o p r o i b i d o p r i n t ( Trabalho p r o i b i d o ) e l i f idade <18: ## menor de i d a d e s a l a r i o = 1600 horas semana = 20 e l s e : ## maior de i d a d e s a l a r i o = 2000 horas semana = 40 i f idade >=14: ## t r a b a l h o p e r m i t i d o p r i n t ( idade, s a l a r i o, horas semana ) Obs.: Observe a indentação alinhada de todas as alternativas. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 50 Programa equivalente Comando repetitivo: while i d a d e = i n t ( input ( ) ) i f idade <14: ## t r a b a l h o p r o i b i d o p r i n t ( Trabalho p r o i b i d o ) e l s e : i f idade <18: ## menor de i d a d e s a l a r i o = 1600 horas semana = 20 e l s e : ## maior de i d a d e s a l a r i o = 2000 horas semana = 40 i f idade >=14: ## t r a b a l h o p e r m i t i d o p r i n t ( idade, s a l a r i o, horas semana ) while e x p r : comando 1 comando 2... comando n A sequência de comandos é executada repetidamente, até que o valor da expressão expr seja falso. A verificação do valor da expressão é verificado a cada vez, antes da execução dos comandos. Os comandos devem estar alinhados. Obs.: Observe as indentações. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 51 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 52

14 Exemplo Outro exemplo n = i n t ( input ( n : ) ) i = 1 while i <n : p r i n t ( i ) i = i +1 p r i n t ( Fim ) n: Fim n = i n t ( input ( n : ) ) while n : p r i n t ( n ) n = n 1 p r i n t ( Fim ) n: Fim Neste caso, um valor numérico está sendo usado em lugar de um valor booleano. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 53 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 54 Comando repetitivo: for Exemplo Forma mais simples: f o r x i n e x p r : comando 1 comando 2... comando n n = i n t ( input ( n : ) ) f o r i i n range ( 1, n ) : p r i n t ( i ) p r i n t ( Fim ) n: Fim A expressão expr deve gerar uma sequência de valores consecutivos que são atribuídos à variável x. Os comandos são executados repetidamente até que a sequência seja esgotada. O valor da variável x pode usado nos comandos. Os comandos devem estar alinhados. A expressão range(1,7) gera os valores do intervalo 1 a 6, inclusive (sic!). range(n) equivale a range(0,n). c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 55 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 56

15 Outro exemplo Mais um exemplo n = i n t ( input ( n : ) ) f o r i i n range ( n,1, 1): p r i n t ( i 1) p r i n t ( Fim ) n: Fim s = input ( Entrada : ) f o r i i n range ( len ( s ) ) : p r i n t ( s [ i ] ) p r i n t ( Fim ) Entrada: abcd a b c d Fim Neste caso, foi necessário ajustar o valor impresso. Em vez disto, poderia ter sido usado o intervalo range(n 1,0, 1). O terceiro argumento (opcional) da função range denota o passo (incremento). Seu valor padrão é 1. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 57 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 58 Outra forma Comando de interrupção break s = input ( Entrada : ) f o r c i n s : p r i n t ( c ) p r i n t ( Fim ) No contexto de um comando for seus caracteres. Entrada: abcd a b c d Fim..., uma cadeia gera a sequência dos O comando break é usado para interromper a execução de um comando repetitivo while ou for. Por exemplo: n = i n t ( input ( n : ) ) f o r i i n range ( n ) : i f i >5: p r i n t ( Excedido ) break p r i n t ( i ) p r i n t ( Fim ) n: Fim n: Excedido Fim c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 59 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 60

16 Outro exemplo de break n = i n t ( input ( n : ) ) i = 0 while i <n : i f i >5: p r i n t ( Excedido ) break p r i n t ( i ) i += 1 p r i n t ( Fim ) Este programa é equivalente ao anterior. Tarefa Escreva um prgrama que lê, consecutivamente, linhas de cadeias de carateres fornecidas. Para cada linha, imprime o número de caracteres a que ocorrem naquela linha. A leitura das linhas deve terminar quando é fornecida uma cadeia vazia (de comprimento 0). No fim, deve ser impresso o número total destas ocorrências. Exemplo: Entrada: abracadabra Cláudia vai à aula Jo~ao l^e o livro aaaaaaaa (esta é uma linha vazia) Total: 17 Submeta a solução ao SuSy (tarefa 02). c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 61 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 62 Solução da tarefa 02 t o t a l = 0 while True : s = input ( ) i f not s : break t = 0 f o r x i n s : i f x== a : t += 1 p r i n t ( t ) t o t a l += t Cadeias de caracteres p r i n t ( Total :, t o t a l ) c 2014 T. Kowaltowski Tópicos em Ciência da Computação Comandos 63 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 64

17 Seleção e fatias >>> s = "abcdefghij" >>> s[3] d >>> s[3:6] def >>> s[:6] abcdef >>> s[6:] ghij >>> s[-3] h >>> s[-3:] hij >>> s[-3:-1] hi >>> s[:-3] abcdefg >>> Obs.: As cadeias são imutáveis, isto é, não se pode alterar o seu valor: >>> s[4] = "x" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: str object does not support item assignment >>> c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 65 Principais funções >>> len("abcdefghij") 10 >>> int("-345") -345 >>> float("-345") >>> print("cadeia_1","cadeia_2") cadeia_1 cadeia_2 >>> a in "abcdefghij" True >>> x in "abcdefghij" False >>> y not in "abcdefghij" True Obs.: A função print (...) aceita qualquer número de argumentos que são transformados em cadeias e concatenados, separados por espaços. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 66 Principais métodos Os valores que podem ser manipulados em Python pertencem a diversas classes: str int float bool... (muitas outras!) Os valores pertencentes a cada classe recebem o nome de objetos; por exemplo, "abcdefghij" é um objeto pertencente à classe str. Cada objeto carrega com ele seus métodos que são uma outra forma de chamada de funções. Exemplos: >>> s = "Bom Dia!" >>> s.lower() bom dia! >>> s.upper() BOM DIA! >>> "Bom Dia!".swapcase() bom dia! >>> s >>> Bom Dia! Serão demonstrados apenas alguns métodos vejam a documentação! Um programa pode definir novas classes e seus métodos. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 67 Principais métodos (cont.) >>> s = "abracadabra" >>> s.count("a") 5 >>> s.count("ab") 2 >>> s.startswith("abraca") True >>> s.endswith("abraca") False >>> s.find("cad") 4 >>> s.find("xyz") -1 >>> s.replace("abr","xyz") xyzacadxyza >>> " a b c d ".strip() a b c d c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 68

18 Tarefa 03 Análoga à tarefa 02, mas usando um método conveniente para contar as ocorrências da letra a. Listas c 2014 T. Kowaltowski Tópicos em Ciência da Computação Cadeias de caracteres 69 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 70 Noções Seleção e fatias Listas são objetos constituídos por sequências de objetos arbitrários Listas podem ser vazias Notação: elementos das listas são especificados entre colchetes e separados por vírgulas Exemplos: [ ] (lista vazia) [ 1, 7, 45 ] [ a, e, i, o, u ] [ lista com um elemento ] [ lista, com, quatro, elementos ] [ [ Maria, 19 ], [ João, 20 ], [ Camila, 18 ] ] [ 12, [ gato, 23 ], José ] As operações sobre listas são análogas às operações sobre cadeias: >>> m = [ 0, 1, 2, 3, 4, 5, 6, 7 ] >>> m[3] 3 >>> m[3:6] [3, 4, 5] >>> m[:6] [0, 1, 2, 3, 4, 5] >>> >>> m[-3] 5 >>> m[-3:] [5, 6, 7] >>> m[-3:-1] [5, 6] >>> m[:-3] [0, 1, 2, 3, 4] >>> c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 71 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 72

19 Operações e funções >>> s = [1, 2, 3] >>> t = [4, 3, 2, 1] >>> s+t [1, 2, 3, 4, 3, 2, 1] >>> 3*s [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> 5 in s False >>> 4 in t True >>> len(s+t) 7 >>> min(t) 1 >>> max(s) 3 Atribuição Variáveis podem receber valores que são listas: vogais = [ a, e, i, o, u ] idades = [ [ Maria, 19 ], [ João, 20 ], [ Camila, 18 ] ] Listas podem ser compartilhadas por distintas variáveis: lista 1 = [ 1, 2, 3, 4, 5 ] lista 2 = lista 1 lista 1 [ 1, 2, 3, 4, 5 ] lista 2 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 73 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 74 Atribuição (cont.) Principais métodos Listas são objetos mutáveis: >>> lista_1 = [ 1, 2, 3, 4, 5 ] >>> lista_2 = lista_1 >>> lista_2[2] = 10 >>> print(lista_1) [1, 2, 10, 4, 5] >>> id1 = [[ Maria, 19 ],[ Jo~ao, 20 ],[ Camila, 18 ]] >>> id2 = idades >>> id2[2][1] = 25 >>> print(id1) [[ Maria, 19], [ Jo~ao, 20], [ Camila, 25]] >>> s = [10, 5, 33] >>> t = s >>> s.append(40) >>> s [10, 5, 33, 40] >>> s.extend([7, 10]) >>> s [10, 5, 33, 40, 7, 10] >>> s.insert(1,45) >>> s [10, 45, 5, 33, 40, 7, 10] >>> del s[3] >>> s [10, 45, 5, 40, 7, 10] >>> s.remove(7) >>> s [10, 45, 5, 40, 10] >>> s.reverse() >>> s [10, 40, 5, 45, 10] >>> t [10, 40, 5, 45, 10] c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 75 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 76

20 Cadeias e listas Listas, cadeias e enumerações >>> list("abcdef") [ a, b, c, d, e, f ] >>> s = "Maria vai para casa".split() >>> s [ Maria, vai, para, casa ] >>> s.sort() >>> s [ Maria, casa, para, vai ] >>> s.sort(reverse=true) >>> s [ vai, para, casa, Maria ] >>> " ".join(s) vai para casa Maria >>> list("xyz") [ x, y, z ] >>> list(range(5)) [0, 1, 2, 3, 4] >>> list(range(2,8)) [2, 3, 4, 5, 6, 7] Diferença entre duas formas: for x in range(1000):... >>> for x in "xyz": print(x) x y z >>> for x in ["abc", 3, "xyz"]: print(x) abc 3 xyz for x in lista(range(1000)):... c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 77 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Listas 78 Opções de formatação Formatação de cadeias Python 3: método format para cadeias será visto mais tarde Python 2 e 3: operador de interpolação % A segunda opção é mais simples apesar de considerada obsoleta para Python 3 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 79 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 80

21 Operador de interpolação % >>> "Maria tem %d anos" % 19 Maria tem 19 anos >>> "%s tem 19 anos" % "Maria" Maria tem 19 anos >>> "%s tem %d anos" % ("Maria", 19) Maria tem 19 anos >>> alunos = [["Maria",19], ["Jo~ao",20], ["Camila",18]] >>> for al in alunos: print("%s tem %d anos" % (al[0], al[1])) Maria tem 19 anos Jo~ao tem 20 anos Camila tem 18 anos Operador de interpolação % (cont.) Os elementos %d e %s são chamados de especificadores e indicam as posições que deverão ser preenchidas pelos valores fornecidos no segundo argumento da operação de interpolação. A notação ("Maria", 19) indica um objeto chamado tupla, semelhante a uma lista, mas imutável (a ser visto mais adiante). A notação deve ser usada quando há mais de um especificador de formato. Exemplos mais simples: >>> "Tenho %d reais" % 25 Tenho 25 reais >>> "Tenho %5d reais" % 25 Tenho 25 reais >>> "%-8s tem %3d anos" % ("Maria", 19) Maria tem 19 anos c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 81 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 82 Operador de interpolação % (cont.) Métodos de formatação Mais exemplos: >>> v = >>> "%f" % v >>> "%6f" % v >>> "%6.2f" % v >>> "%6.3f" % v >>> "%6.4f" % v >>> "%6.1f" % v 12.3 >>> "%6.0f" % v 12 c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 83 >>> nome = "Maria" >>> nome.center(15) Maria >>> nome.rjust(10) Maria >>> nome.ljust(10) Maria >>> nome.ljust(10, * ) Maria***** O três métodos acima têm um argumento opcional que é o caractere de preenchimento. c 2014 T. Kowaltowski Tópicos em Ciência da Computação Formatação de cadeias 84

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Python: Comandos Básicos. Claudio Esperança

Python: Comandos Básicos. Claudio Esperança Python: Comandos Básicos Claudio Esperança Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são escritas e computadas imediatamente Variáveis podem

Leia mais

Python Funções. Introdução à Programação SI1

Python Funções. Introdução à Programação SI1 Python Funções Introdução à Programação SI1 Conteúdo Funções Conceitos Objetivos Modularização Exemplos Exercícios 2 Funções O que são? Qual a função de uma função? 3 Imagine o código 4 Imagine o código

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Linguagens de programação

Linguagens de programação Prof. André Backes Linguagens de programação Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve ser descrito em termos de 1 s ou 0 s

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Introdução a Algoritmos Parte 04

Introdução a Algoritmos Parte 04 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

ESTRUTURA CONDICIONAL

ESTRUTURA CONDICIONAL AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani Minicurso de Python Aula 1 Raphael Lupchinski Marcelo Millani Introdução Python é uma linguagem de programação poderosa e fácil de aprender Possui estruturas de dados eficientes e de alto nível, além de

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

Programação Elementar de Computadores Jurandy Soares

Programação Elementar de Computadores Jurandy Soares Programação Elementar de Computadores Jurandy Soares Básico de Computadores Computador: dispositivos físicos + programas Dispositivos físicos: hardware Programas: as instruções que dizem aos dispositivos

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição 1 Estrutura de seleção Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição - Necessário quando mais de uma ação deve ser tomada se uma condição for satisfeita

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Estruturas de dados Representação computacional das informações do problema ser resolvido Informações podem ser de

Leia mais

Programação de Computadores III

Programação de Computadores III Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais

Leia mais

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Processamento da Informação Teoria. Algoritmos e Tipos de dados Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo

Leia mais

Linguagem algorítmica: Portugol

Linguagem algorítmica: Portugol Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

PYTHON LISTAS. Introdução à Programação SI2

PYTHON LISTAS. Introdução à Programação SI2 PYTHON LISTAS Introdução à Programação SI2 3 Sequências Sequências! Podem ser indexados por algum valor ordinal posicional Algumas operações são aplicadas a todos os tipos de sequências. Listas li = [1,2,3,

Leia mais

Estruturas de controle no nível de sentença

Estruturas de controle no nível de sentença Estruturas de controle no nível de sentença Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

Algoritmos Computacionais ( Programas )

Algoritmos Computacionais ( Programas ) Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma

Leia mais

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados 1. Objetivos Falar sobre programa de computador, diferenciando programa em linguagem de máquina, de programa em

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

ERROS MAIS COMUNS COMETIDOS EM PROGRAMAS E ALGORITMOS

ERROS MAIS COMUNS COMETIDOS EM PROGRAMAS E ALGORITMOS ERROS MAIS COMUNS COMETIDOS EM PROGRAMAS E ALGORITMOS Compilação dos erros mais comuns cometidos por estudantes de Introdução a Algoritmos Marcos Portnoi Edição 19.4.2007 Universidade Salvador UNIFACS

Leia mais

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 7 Prof. ISVega Março de 2004 Controle de Execução: Seleção Simples CONTEÚDO

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

Álgebra Booleana. Introdução ao Computador 2010/01 Renan Manola

Álgebra Booleana. Introdução ao Computador 2010/01 Renan Manola Álgebra Booleana Introdução ao Computador 2010/01 Renan Manola Histórico George Boole (1815-1864) Considerado um dos fundadores da Ciência da Computação, apesar de computadores não existirem em seus dias.

Leia mais

Algoritmo e Programação

Algoritmo e Programação Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch) CURSO BÁSICO DE PROGRAMAÇÃO AULA 9 Revisão Aula Anterior Estruturas de Decisão (If e Switch) Revisão Comandos básicos no terminal: Para verificar os arquivos que estão em uma pasta usa-se ls: Para acessar

Leia mais

Programação II. Aula 2

Programação II. Aula 2 Programação II Aula 2 Introdução Para que serve programação? Resolver algum problema computacionalmente. Desenvolver um programa de computador (solução) cuja execução leve a um resultado (aceitável) de

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA

Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA OBJETIVOS DO CAPÍTULO Conceitos de: variáveis de precisão simples e dupla, variáveis do tipo real simples e dupla, mistura de variáveis do tipo inteiro com real

Leia mais

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Python: Funções. Claudio Esperança

Python: Funções. Claudio Esperança Python: Funções Claudio Esperança Abstração É uma técnica de programação que nos permite pensar num problema em diversos níveis A idéia é que quando estamos pensando num problema macroscopicamente, não

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos

Leia mais

compreender a importância de cada estrutura de controle disponível na Linguagem C;

compreender a importância de cada estrutura de controle disponível na Linguagem C; Aula 3 Estruturas de controle Objetivos Esperamos que, ao final desta aula, você seja capaz de: compreender a importância de cada estrutura de controle disponível na Linguagem C; construir programas em

Leia mais

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO Pseudocódigo Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve,

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO] Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

CURSO B SICO DE PERL

CURSO B SICO DE PERL CURSO BÁSICO DE PERL CURSO BÁSICO DE PERL ESTRUTURA: 12 aulas de 2 horas e meia totalizando 30 horas. 2 créditos. É necessário 75% de presença (com exceções). Precisamos pensar em um método de avaliação.

Leia mais

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06. ICMC-USP ICC - SCC-0 Turmas B e D - º. Semestre de 00 - Prof. João Luís. PAE: Jefferson F. Silva. Trabalho Final Submissão Automática da implementação pelo sistema Boca (http://blacklabel.intermidia.icmc.usp.br/boca/scc00/.)

Leia mais

Controle do Arquivo Técnico

Controle do Arquivo Técnico Controle do Arquivo Técnico Os documentos existentes de forma física (papel) no escritório devem ser guardados em pastas (normalmente pastas suspensas) localizadas no Arquivo Técnico. Este Arquivo pode

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

UFRPE Prof. Gustavo Callou gcallou@gmail.com

UFRPE Prof. Gustavo Callou gcallou@gmail.com UFRPE Prof. Gustavo Callou gcallou@gmail.com 1 Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador Ambiente de Desenvolvimento Python Característica Para que serve Onde

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

CAPITULO 5 COMANDO DE FLUXO IF

CAPITULO 5 COMANDO DE FLUXO IF CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá

Leia mais

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br AULA 12 CLASSES DA API JAVA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br CLASSES DA API JAVA A maioria dos programas de computador que resolvem problemas do

Leia mais

Programação WEB I Estruturas de controle e repetição

Programação WEB I Estruturas de controle e repetição Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos

Leia mais

Sintaxe e Semântica. Fases da Compilação. programa fonte

Sintaxe e Semântica. Fases da Compilação. programa fonte Sintaxe e Semântica mleal@inf.puc-rio.br Fases da Compilação programa fonte tokens parse tree árvore anotada ou outra forma intermediária código intermediário código objeto código objeto otimizado scanner

Leia mais

CIÊNCIA DA COMPUTAÇÃO I Excel. Núm1, núm2,... são argumentos de 1 a 255 cuja soma ou valor total você deseja obter.

CIÊNCIA DA COMPUTAÇÃO I Excel. Núm1, núm2,... são argumentos de 1 a 255 cuja soma ou valor total você deseja obter. SOMA Retorna a soma de todos os números na lista de argumentos. Sintaxe SOMA(núm;núm;...) Núm, núm,... são argumentos de a 55 cuja soma ou valor total você deseja obter. Comentários Os números, valores

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais