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: https://susy.ic.unicamp.br:9999/mc933a 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 https://docs.python.org/3/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

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

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

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

Lógica de Programação com Python

Lógica de Programação com Python Lógica de Programação com Python por Nilo Menezes http://www.nilo.pro.br/python/ Python 2.7 requer PyGame Atualizada em 30/10/2012 1 Objetivos Introduzir os conceitos de programação Apresentar as principais

Leia mais

Introdução à estrutura de dados com Python

Introdução à estrutura de dados com Python Introdução à estrutura de dados com Python CLEIBSON APARECIDO DE ALMEIDA UFPR Universidade Federal do Paraná PPGMNE Programa de Pós Graduação em Métodos Numéricos em Engenharia Centro Politécnico CEP 81.531-980

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

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

Danilo Borges da Silva daniloborges_@hotmail.com

Danilo Borges da Silva daniloborges_@hotmail.com Danilo Borges da Silva daniloborges_@hotmail.com Simples o suficiente para um curso introdutório Muitos recursos Orientação a Objetos Escalável (módulos, classes, controle de exceções) Biblioteca embutida

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

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

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

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

Gerador Menu. AVISO: A biblioteca só funciona corretamente com as versões 2.6 ou superiores ou 3.0 ou superiores.

Gerador Menu. AVISO: A biblioteca só funciona corretamente com as versões 2.6 ou superiores ou 3.0 ou superiores. Gerador Menu 1.0 Sobre este pacote Sistema gerador de menu para prompt de comando. 1.1 Sobre AVISO: A biblioteca só funciona corretamente com as versões 2.6 ou superiores ou 3.0 ou superiores. Resumidamente,

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar

Leia mais

Italo Valcy

Italo Valcy <italo@dcc.ufba.br> Programação C Módulo 01 Introdução à linguagem C Italo Valcy www.ieee.org/ufba Italo Valcy Programação em C Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente,

Leia mais

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com.

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com. UAL é uma linguagem interpretada para descrição de algoritmos em Português. Tem por objetivo auxiliar o aprendizado do aluno iniciante em programação através da execução e visualização das etapas de um

Leia mais

Aula 4: adivinhe o número

Aula 4: adivinhe o número Aula 4: adivinhe o número Kaya Sumire Abe kaya.sumire@gmail.com Diego de Faria do Nascimento df.nascimento93@gmail.com Fabian Czajkowski fabiancza22@gmail.com 05/09/2012 Resumo Através do que já vimos,

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

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo 1.1 Introdução A Lógica é forma de organizar os pensamentos e demonstrar o raciocínio de maneira correta. A utilização da lógica é a melhor maneira de solucionar

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

Disparando o interpretador

Disparando o interpretador Capítulo 2: Usando o interpretador Python Disparando o interpretador O interpretador é frequentemente instalado como /usr/local/bin/python nas máquinas onde está disponível; adicionando /usr/local/bin

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

APOSTILA PHP PARTE 1

APOSTILA PHP PARTE 1 APOSTILA PHP PARTE 1 1. Introdução O que é PHP? PHP significa: PHP Hypertext Preprocessor. Realmente, o produto foi originalmente chamado de Personal Home Page Tools ; mas como se expandiu em escopo, um

Leia mais

Padrões de Codificação Java

Padrões de Codificação Java Padrões de Codificação Java João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 1.0 Última Atualização: Março / 2005 1 Objetivos Apresentar os padrões de codificação Java da SUN 2 Introdução Um padrão

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

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

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

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

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

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

Variáveis, Expressões e Comandos. Prof. Alberto Costa Neto Programação em Python

Variáveis, Expressões e Comandos. Prof. Alberto Costa Neto Programação em Python Variáveis, Expressões e Comandos Prof. Alberto Costa Neto Programação em Python Constantes Valores fixos tais como números, letras, e strings são chamados constantes - porque seus valores não mudam. Constantes

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

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

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

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

Primeiro programa em Java (compilação e execução)

Primeiro programa em Java (compilação e execução) Universidade Federal do ABC Disciplina: Linguagens de Programação (BC-0501) Assunto: Primeiro programa em Java (compilação e execução) Primeiro programa em Java (compilação e execução) Introdução Este

Leia mais

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

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

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

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

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

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

Curso de C: uma breve introdução

Curso de C: uma breve introdução V Semana de Engenharia Elétrica - UFBA Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License:

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

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

Laboratório de Programação I

Laboratório de Programação I Laboratório de Programação I Introdução à Programação em Visual Basic Fabricio Breve Objetivos Ser capaz de escrever programas simples em Visual Basic Ser capaz de usar os comandos de entrada e saída Familiarizar-se

Leia mais

Usando Python como uma calculadora

Usando Python como uma calculadora Capítulo 3: Uma introdução informal a Python Nos exemplos seguintes, pode se distinguir a entrada da saída pela presença ou ausência dos prompts (>>> e...): para repetir o exemplo, você deve digitar tudo

Leia mais

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Instituto de Ciências Agrárias Professor: Renato Dourado Maia Disciplina: Programação de Computadores Curso: Engenharia de Alimentos Turma: Terceiro Período 1 Introdução

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

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

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

4 Criação de macros e introdução à linguagem VBA

4 Criação de macros e introdução à linguagem VBA 4 Criação de macros e introdução à linguagem VBA Vinicius A. de Souza va.vinicius@gmail.com São José dos Campos, 2011. 1 Sumário Tópicos em Microsoft Excel 2007 Introdução à criação de macros...3 Gravação

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

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas O que é PHP? Acrônimo de PHP: Hipertext Language PostProcessor Inicialmente escrita para o desenvolvimento de aplicações Web Facilidade para iniciantes e recursos poderosos para programadores profissionais

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

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

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

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

PC Fundamentos Revisão 4

PC Fundamentos Revisão 4 exatasfepi.com.br PC Fundamentos Revisão 4 André Luís Duarte...mas os que esperam no Senhor renovarão as suas forças; subirão com asas como águias; correrão, e não se cansarão; andarão, e não se fatigarão.is

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

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação

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

Instituto de Tecnologia de Massachusetts Departamento de Engenharia Elétrica e Ciência da Computação. Tarefa 6 Modelamento da Línguagem

Instituto de Tecnologia de Massachusetts Departamento de Engenharia Elétrica e Ciência da Computação. Tarefa 6 Modelamento da Línguagem Instituto de Tecnologia de Massachusetts Departamento de Engenharia Elétrica e Ciência da Computação 6.345 Reconhecimento Automático da Voz Primavera, 2003 Publicado: 14/03/03 Devolução: 02/04/03 Tarefa

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

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

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

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

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

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Ciclo de desenvolvimento O modelo hipotético de computador utilizado no capítulo anterior, embora muito

Leia mais

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE 1. Como nomear variáveis, classes métodos e etc... Métodos descrevem ações, portanto todos os métodos DEVEM conter no mínimo um verbo SEMPRE no infinitivo. Toda

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

Fábio Rodrigues Jorge. E-mail: fabinhojorgenet@gmail.com

Fábio Rodrigues Jorge. E-mail: fabinhojorgenet@gmail.com Fábio Rodrigues Jorge E-mail: fabinhojorgenet@gmail.com Este minicurso tem por objetivo apresentar uma noção introdutória á linguagem Python. Temas abordados no minicurso: -variáveis -comandos de decisão

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

Introdução ao FORTRAN (Parte I)

Introdução ao FORTRAN (Parte I) Programação de Computadores III Aula 7 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula

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

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade

Leia mais

Expressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Expressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Expressão é uma frase de um programa que ao ser avaliada retorna um valor Tipos Literais Agregados Chamadas de Função

Leia mais

QUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS

QUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS Desenvolvimento De Sistemas - Lógica De Programação. 1. Lógica de Programação I 1.1 Introdução á Lógica de Programação 1.2 O que é lógica? 1.3 Lógica Matemática 1.4 Lógica de Programação 1.5 Seqüência

Leia mais

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL

BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL BCValidador VALIDAÇÃO DE ARQUIVOS XML RECEBIDOS PELO BANCO CENTRAL DO BRASIL Deinf/Dine4 Versão 1.3 20/05/2013 Histórico de Revisão Data Versão Descrição Autor 06/11/2007 1.0 Elaboração da primeira versão

Leia mais

Primeiro programa em Java (compilação e execução)

Primeiro programa em Java (compilação e execução) Universidade Federal do ABC Disciplina: Linguagens de Programação (BC-0501) Assunto: Primeiro programa em Java (compilação e execução) Primeiro programa em Java (compilação e execução) Introdução Este

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

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

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Compiladores. A seção das regras. Especificação (F)lex. Plano da aula. Escolha das regras. Compilação típica com FLEX

Compiladores. A seção das regras. Especificação (F)lex. Plano da aula. Escolha das regras. Compilação típica com FLEX Compilação típica com FLX Compiladores Análise sintática (1) Noções sobre Gramáticas Livres de conteto dição do teto de especificação No arquivo minhas_regras.l 3 partes: Declarações Regras (Rs -> Ação)

Leia mais

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha. Aula 1 O modelo de objetos do Excel APPLICATION É o próprio Excel. Temos diversas propriedades e métodos importantes nesse objeto. Destacamos dois exemplos: Application.DisplayAlerts Se for true, o Excel

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

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

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB Instituto Politécnico de Viseu Escola Superior de Tecnologia Departamento: Matemática Métodos Numéricos Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007 Aula prática n o 1 - Introdução

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Visualização Científica Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++ #include { Este trecho é reservado para o corpo da função, com a declaração de suas variáveis locais, seus comandos e funções

Leia mais

Introdução. A verificação de tipos pode ser estática e dinâmica

Introdução. A verificação de tipos pode ser estática e dinâmica Análise Semântica Introdução Verifica se as construções sintaticamente corretas possuem significado lógico dentro da linguagem Verifica a consistência da declaração e uso dos identificadores Além disso,

Leia mais

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de

Leia mais

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS CURSO TÉCNICO EM PROCESSAMENTO DE DADOS APOSTILA DE LÓGICA DE PROGRAMAÇÃO CAP Criação de Algoritmos e Programas PROFESSOR RENATO DA COSTA Não estamos aqui para sobreviver e sim para explorar a oportunidade

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

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

LINGUAGEM C: DESCOMPLICADA. Prof. André R. Backes

LINGUAGEM C: DESCOMPLICADA. Prof. André R. Backes LINGUAGEM C: DESCOMPLICADA Prof. André R. Backes 1 COMANDOS DE CONTROLE CONDICIONAL Os programas escritos até o momento são programas sequeciais: um comando é executado após o outro, do começo ao fim do

Leia mais