Lista de Exercícios 05 Strings

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

Download "Lista de Exercícios 05 Strings"

Transcrição

1 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho Túlio Ângelo M. Toffolo Lista de Exercícios 05 Strings Instruções Todos os exercícios que envolvem programas devem ser resolvidos através de programas; Na solução dos exercícios, devem ser utilizados os conceitos listados no cabeçalho desta lista; Para cada exercício, deve ser criado um arquivo com nome Nome_ListaX_ExeY.c, em que Nome denota o nome do aluno, X denota o número da lista de exercícios e Y denota o número do exercício; Os códigos fonte deverão ser primeiramente submetidos ao Uva, e após serem aceitos, devem ser entregues através do Moodle, sem zipar; Códigos copiados ou tentativas de trapaça acarretam em perda total da lista de exercícios; Eventuais dúvidas podem ser sanadas com o professor; A data da entrega é até o início da próxima aula prática. ID: Onde está Waldorf? Dado uma grade de m por n de letras, (1<=m, n<=50), e uma lista de palavras, encontre a localização na grade na qual a palavra pode ser encontrada. Uma palavra casa uma linha de letras da grade direta, sem interrupções. Uma palavra pode casar as letras da grade independentemente da caixa (ou seja, letras maiúsculas ou minúsculas são tratadas da mesma forma). O casamento pode ser feito em qualquer uma das oito direções, horizontalmente, verticalmente ou diagonalmente na grade. A entrada começa com um único inteiro em uma linha indicando o número de casos a seguir, cada um deles descrito como a seguir. Esta linha é seguida por uma linha em branco, e também há uma linha em branco entre duas entradas consecutivas. A entrada começa com um par de inteiros, m seguido por n, 1<=m, n<=50 em notação decimal em uma única linha. As próximas m linhas contém n letras cada, este é a grade de letras na qual as palavras da lista devem ser encontradas. As letras da grade podem ser maiúsculas ou minúsculas. Depois das letras da grade, outro inteiro k aparece sozinho em uma linha (1<=k<=0). As próximas k linhas da entrada contém uma lista de palavras a serem procuradas, uma palavra por linha. Estas palavras podem conter letras maiúsculas e minúsculas apenas (sem espaços, hífens ou outros caracteres não alfabéticos). Para cada caso de teste, a saída segue a descrição abaixo. As saídas de dois casos consecutivos serão separadas por uma linha em branco.

2 Para cada palavra na lista, um par de inteiros representando a localização da palavra correspondente na grade deve ser exibido. Os inteiros devem ser separados por um único espaço. O primeiro inteiro é a linha da grade na qual a primeira letra da palavra pode ser encontrada (1 representa a coluna mais à esquerda na grade, e n representa a coluna mais à direita na grade). Se uma palavra pode ser encontrada mais de uma vez na grade, a localização exibida deve corresponder àquela ocorrência mais ao topo (ou seja, a ocorrência que posiciona a primeira letra mais próxima do topo da grade). Se duas ou mais palavras são as mais ao topo, a saída deve corresponder àquela mais à esquerda. Todas as palavras podem ser encontradas pelo menos uma vez na grade. Exemplo de Exemplo de abcdefghigg hebkwaldork FtyAwaldORm FtsimrLqsrc byoarbedeyv Klcbqwikomk strebgadhrb yuiqlxcnbjf 4 Waldorf Bambi Betty Dagbert

3 Ananagramas ID: 156 A maioria dos fãs de jogos de palavras cruzadas é acostumada com anagramas -- grupos de palavras com as mesmas letras em ordens diferentes -- por exemplo, OPTS, SPOT, STOP e POST. Algumas palavras, porém, não possuem este atributo, não importa como você rearranje as letras delas, você nunca formará outra palavra. Tais palavras são chamadas ananagramas, um exemplo é QUIZ. Obviamente, tais definições dependem do domínio no qual estamos trabalhando; você pode pensar que ATHENE é um ananagrama, ao passo que qualquer químico rapidamente produziria ETHANE. Um possível domínio poderia ser a língua inglesa completa, mas isto poderia levar a alguns problemas. Alguém poderia restringir a, digamos, música, em que SCALE se tornaria um ananagrama relativo (LACES não está no mesmo domínio) mas NOTE não é, uma vez que pode produzir TONE. Escreva um programa que lerá o dicionário de um domínio restrito e determine os ananagramas relativos. Note que palavras de uma letra só são, ipso facto, ananagramas relativos, uma vez que não podem ser rearranjados de maneira nenhuma. O dicionário não conterá mais que 100 palavras. A entrada consistirá de uma série de linhas. Nenhuma linha terá mais que 80 caracteres de comprimento, mas pode conter qualquer número de palavras. Palavras consistem de até 0 letras maiúsculas/minúsculas, e não serão divididas entre linhas. Espaços podem aparecer livremente ao redor das palavras, e pelo menos um espaço separa múltiplas palavras na mesma linha. Note que palavras contendo as mesmas letras de diferentes caixas são consideradas anagramas uma da outra, logo, tied e Edit são anagramas. O arquivo será terminado por um único #. A saída consistirá de uma série de linhas. Cada linha consistirá de uma única palavra que é um ananagrama relativo no dicionário de entrada. Palavras devem ser exibidas em ordem lexicográfica (case-sensitive). Haverá sempre pelo menos um ananagrama relativo. Exemplo de ladder came tape soon leader acme RIDE lone Dreis peat ScAlE orb eye Rides dealer NotE derail LaCeS dried noel dire Disk mace Rob dries # Exemplo de Disk NotE derail dried eye ladder soon

4 Códigos ID ID: 146 É 084 e o ano do Grande Irmão finalmente chegou, apesar de um século depois. No intuito de exercer grande controle sobre os cidadãos e assim conter um colapso crônico da ordem e da lei, o Governo decide em uma medida radical -- todos os cidadãos devem ter um microcomputador cirurgicamente implantado em seus punhos esquerdos. Este computador conterá todos os tipos de informações pessoais assim como um transmissor que permitirá que os movimentos das pessoas sejam registrados e monitorados por um computador central. (Um efeito colateral desejável deste processo é que serão encurtadas as filas de desemprego dos cirurgiões plásticos). Um componente essencial de cada computador será um código de identificação único, consistindo de até 50 caracteres tomados a partir das 6 letras minúsculas. O conjunto de caracteres para qualquer código é escolhido atropeladamente. A forma complicada na qual o código é impresso no chip faz com que seja muito mais fácil para o fabricante produzir códigos que são rearranjamentos de outros códigos do que criar códigos novos com uma seleção diferente de letras. Logo, uma vez que um conjunto de letras foi escolhido, todos os códigos deriváveis dele serão utilizados antes que o conjunto seja trocado. Por exemplo, suponha que foi decidido que um código conterá exatamente 3 ocorrências de a, de b e 1 de c, então três dos 60 códigos permitidos sob estas condições são: abaabc abaacb ababac Estes três códigos são listados do alto para baixo em ordem alfabética. Entre todos os códigos gerados com este conjunto de caracteres, estes códigos aparecem consecutivamente nesta ordem. Escreva um programa que ajude a gerar estes códigos de identificação. Seu programa deve aceitar uma sequência de não mais que 50 letras minúsculas (que podem conter caracteres repetidos) e imprimir o código sucessor se ele existir ou a mensagem No Successor se o dado código é o último na sequência para aquele conjunto de caracteres. A entrada consistirá de uma série de linhas, cada uma contendo ma string representado um código. O arquivo será terminado por uma linha consistindo de um # único. A saída consistirá de uma linha para cada código lido, contendo o código sucesso ou as palavras No Successor. Exemplo de Exemplo de abaacb ababac cbbaa No Successor #

5 WERTYU ID: 1008 Um erro comum em digitação é posicionar as mãos no teclado uma linha à direita da posição correta. Desta forma, Q é digitado como W e J é digitado como K e assim por diante. Você deve decodificar uma mensagem digitada desta maneira. A entrada consiste de várias linhas de texto. Cada linha contém dígitos, espaços, letras maiúsculas e minúsculas (Exceto, Q, A, Z) ou pontuação mostrada acima [exceto a aspa invertida (`)]. Teclas rotuladas com palavras [Tab, BackSp, Control, etc.] não são representadas na entrada. Você deve substituir cada letra ou símbolo de pontuação por aquele imediatamente à sua esquerda no teclado QWERTY mostrado acima. Espaços na entrada devem ser exibidos na saída. Exemplo de Exemplo de O S, GOMR YPFSU/ I AM FINE TODAY.

6 Permutação em Comum* ID: 105 Dadas duas strings de letras minúsculas, a e b, imprima a string x mais longa tal que haja uma permutação de x que seja uma subsequência de a e haja uma permutação de x que seja uma subsequência de b. O arquivo de entrada contém várias linhas. Duas linhas consecutivas formam um conjunto de entradas. Isto significa que no arquivo de entrada, as linhas 1 e são um conjunto de entrada, as linhas 3 e 4 são um conjunto de entrada, e assim por diante. A primeira linha de um par contém a, e a segunda contém b. Cada string está em uma linha separada e consiste de até 1000 letras minúsculas. Para cada conjunto de entrada, exiba uma linha contendo x. Se vários x satisfazem o critério acima, escolha o primeiro em ordem alfabética. Exemplo de Exemplo de pretty women e walking nw down et the street *(Aquecimento da Final Mundial, Fonte do Problema: Competição Local, Universidade Alberta)

7 Script de Juiz Automático ID: Juízes humanos de competições de programação são conhecidos por serem muito exigentes. Para eliminar a necessidade deles, escreva um script de juiz automático para julgar as soluções submetidas. Seu programa deve tomar um arquivo contendo a saída correta assim como a saída do programa submetido e responder Accepted, Presentation Error, ou Wrong Answer, definidos como a seguir: Accepted: Você deve reportar Accepted se a saída do time casa com a solução exatamente. Todos os caracteres devem casar e devem ocorrer na mesma ordem. Presentation Error: Dê um Presentation Error se todos os caracteres numéricos casam na mesma ordem, mas há pelo menos um caractere não numérico que não casa. Por exemplo, 15 0 e 150 receberiam Presentation Error, ao passo que 15 0 e 1 0 receberiam Wrong Answer, descrito abaixo. Wrong Answer: Se a saída do time não pode ser classificada como acima, então você não tem alternativa a não ser anotar um Wrong Answer para o time. A entrada consistira de um número arbitrário de conjuntos de entrada, Cada conjunto de entrada começa com uma linha contendo um inteiro positivo n < 100, que descreve o número de linhas da solução correta. As próximas n linhas contém a solução correta. Então segue um inteiro positivo, m<100, sozinho em sua linha, que descreve o número de linhas da saída submetida pelo time. As próximas m linhas contêm esta saída. A saída é terminada pelo valor de n=0, que não devem ser processado. Nenhuma linha terá mais do que 100 caracteres. Para cada conjunto, exiba alguma das seguintes frases: Run #x: Accepted Run #x: Presentation Error Run #x: Wrong Answer Em que x denota o número do conjunto de entrada (começando por 1).

8 Exemplo de The answer is: 5 The answer is: 5 The answer is: 5 The answer is: 15 The answer is: 5 The answer is: 5 3 Input Set #1: YES Input Set #: NO Input Set #3: NO 3 Input Set #0: YES Input Set #1: NO Input Set #: NO The judges are mean! 1 The judges are good! 0 Exemplo de Run #1: Accepted Run #: Wrong Answer Run #3: Presentation Error Run #4: Wrong Answer Run #5: Presentation Error Run #6: Presentation Error

9 Sintaxe Simples ID: 71 Na terra de Hedônia, a língua oficial é o Hedoniano. Uma professora de Hedoniano percebeu que vários dos seus estudantes ainda não dominam bem a sintaxe do Hedoniano. Cansada de corrigir os vários erros sintáticos, ela decidiu desafiar os alunos e pediu que eles escrevessem um programa que pudesse checar a corretude sintática de qualquer sentença que escrevessem. Similar à natureza dos Hedonianos, a sintaxe do Hedoniano é também agradavelmente simples. Aqui estão as regras: 0. Os únicos caracteres na linguagem são os de p até z e N, C, D, E, e I. 1. Todo caractere de p até z é uma sentença correta.. Se s é uma sentença correta, então Ns também é. 3. Se s e t são sentenças corretas, então Cst, Dst, Est, e Ist também são. 4. As regras de 0 a 3 são as únicas regras que determinam a corretude sintática de uma sentença. É pedido a você que escreva um programa que checa se uma sentença satisfaz as regras sintáticas dadas nas regras de 0 a 4. A entrada consiste de um número de sentenças consistindo apenas de caracteres de p até z e N, C, D, E, e I. Cada sentença é terminada por um caractere nova linha. A coleção de sentenças é terminada pelo caractere fimde-arquivo. Se necessário, você deve assumir que cada sentença tem no máximo 56 caracteres e no mínimo 1 caractere. A saída consiste das respostas YES para cada sentença bem formada e NO para cada sentença não bem formada. As respostas são dadas na mesma ordem que as sentenças. Cada resposta é seguida por um caractere nova linha, e a lista de respostas é seguida por um caractere fim-de-arquivo. Exemplo de Exemplo de Cp NO Isz YES NIsz YES Cqpq NO

10 Pesquisando Rapidamente ID: 13 Pesquisa e ordenação são parte da teoria e prática da ciência da computação. Por exemplo, a busca binária nos fornece um bom exemplo de um algoritmo fácil de entender com complexidade sublinear. Quicksort é um eficiente [caso médio] método de ordenação O(n log n) baseada em comparações. KWIC-indexing é um método de indexação que permite pesquisa humana de, por exemplo, uma lista de títulos. Dados uma lista de títulos e uma lista de palavras a serem ignoradas, você deve escrever um programa que gere um índice KWIC (Key Word In Context) dos títulos. Em um KWIC-index, um título é listado uma vez para cada palavra chave que ocorre no título. O KWIC-index é ordenado por palavra chave. Qualquer palavra que não seja uma das palavras a serem ignoradas é uma palavra chave em potencial. Por exemplo, se as palavras a serem ignoradas são the, of, and, as, a e a lista de títulos é: Descent of Man The Ascent of Man The Old Man and The Sea A Portrait of The Artist As a Young Man O KWIC-index destes títulos pode ser dados por: a portrait of the ARTIST as a young man the ASCENT of man DESCENT of man descent of MAN the ascent of MAN the old MAN and the sea a portrait of the artist as a young MAN the OLD man and the sea a PORTRAIT of the artist as a young man the old man and the SEA a portrait of the artist as a YOUNG man A entrada é uma sequência de linhas, a string :: é usada para separar a lista de palavras a serem ignoradas da lista de títulos. Cada uma das palavras a serem ignoradas aparece em letras minúsculas em uma linha sozinha e não possuem comprimento maior que 10 caracteres. Cada título aparece em uma linha sozinha e pode consistir de letras maiúsculas e minúsculas misturadas. Palavras em títulos são separadas por espaço em branco. Nenhum título contém mais que 15 palavras. Não haverá mais do que 50 palavras a serem ignoradas, não mais que 00 títulos, e não mais que caracteres nos títulos e palavras a serem ignoradas combinados. Nenhum outro caractere além de a - z, A - Z, e espaço em branco aparecerá na entrada. A saída deve ser o KWIC-index dos títulos, com cada título aparecendo uma vez para cada palavra chave no título, e com o KWIC-index ordenado por palavra chave. Se uma palavra aparece mais que uma vez em um título, cada instância é uma palavra chave em potencial.

11 A palavra chave deve aparecer toda em letras maiúsculas. Todas as outras palavras em um título devem ser em letras minúsculas. Títulos no KWIC-index com a mesma palavra chave devem aparecer na mesma ordem em que apareceram na entrada. No caso em que múltiplas instâncias de uma palavra são palavras chave no mesmo título, as palavras chave devem ser capitalizadas da esquerda para a direita. Maiúsculas ou minúsculas são irrelevantes para determinar se uma palavra deve ser ignorada. Os títulos em um KWIC-index não necessitam ser justificados ou alinhados por palavra chave, todos os títulos devem ser justificados à direita. Exemplo de is the of and as a but :: Descent of Man The Ascent of Man The Old Man and The Sea A Portrait of The Artist As a Young Man A Man is a Man but Bubblesort IS A DOG Exemplo de a portrait of the ARTIST as a young man the ASCENT of man a man is a man but BUBBLESORT is a dog DESCENT of man a man is a man but bubblesort is a DOG descent of MAN the ascent of MAN the old MAN and the sea a portrait of the artist as a young MAN a MAN is a man but bubblesort is a dog a man is a MAN but bubblesort is a dog the OLD man and the sea a PORTRAIT of the artist as a young man the old man and the SEA a portrait of the artist as a YOUNG man

Generating Fast, Sorted Permutation

Generating Fast, Sorted Permutation Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho

Leia mais

Lista de Exercícios 09

Lista de Exercícios 09 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho

Leia mais

Backtracking. Pequenos Bispos

Backtracking. Pequenos Bispos Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Lista de exercícios para a prática de manipulação de Strings

Lista de exercícios para a prática de manipulação de Strings nstituto ederal de Minas Gerais - Campus avançado de Ponte Nova - MG Disciplina: Linguagem de programação Professor: Saulo Henrique Cabral Silva Lista de exercícios para a prática de manipulação de Strings

Leia mais

Exercícios: Vetores e Matrizes

Exercícios: Vetores e Matrizes Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 4

Algoritmos e Estruturas de Dados II. Trabalho Prático 4 Algoritmos e Estruturas de Dados II Trabalho Prático 4 Entrega: 23/11/09 Devolução: 10/12/09 (sem possibilidade de entrega com atraso) Trabalho em dupla Prof. Jussara Marques de Almeida Problema 1: Construção

Leia mais

Linguagem C Entrada/Saída (console)

Linguagem C Entrada/Saída (console) Linguagem C Entrada/Saída (console) Objetivos Nos artigos anteriores foram utilizadas as funções scanf() e printf(), porém não entramos em maiores detalhes. Agora estudaremos essas e outras funções de

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA

Leia mais

Universidade Federal do ABC MCTA Programação Estruturada 2018.Q3

Universidade Federal do ABC MCTA Programação Estruturada 2018.Q3 Universidade Federal do ABC MCTA028-15 - Programação Estruturada 2018.Q3 Lista de Exercícios 4 Professores Emílio Francesquini e Carla Negri Lintzmayer 16 de outubro de 2018 1. Crie uma função que recebe

Leia mais

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada

Leia mais

Divisão e Conquista. Dado um conjunto de pontos no espaço bidimensional, você deve encontrar a distância entre os dois pontos mais próximos.

Divisão e Conquista. Dado um conjunto de pontos no espaço bidimensional, você deve encontrar a distância entre os dois pontos mais próximos. Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP Programação de Computadores 1 Lista 2 Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP 0.1 Vetores e Cadeias de Caracteres 1. Codifique um programa que leia e armazene duas notas de 10 alunos e calcule

Leia mais

Exercícios TVC2 PARTE I:

Exercícios TVC2 PARTE I: Exercícios TVC2 Esta lista de exercícios foi elaborada como preparatório para a segunda avaliação que será realizada em breve, abordando repetições, vetores numéricos e strings. Algumas instruções: Desenvolva

Leia mais

Aula 15 - Estruturas de Repetição (p3)

Aula 15 - Estruturas de Repetição (p3) BCC701- Programação de Computadores I Aula 15 - Estruturas de Repetição (p3) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01

Leia mais

Lista de Exercícios 5

Lista de Exercícios 5 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para

Leia mais

Lista de Exercícios 02

Lista de Exercícios 02 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Lista sobre Estruturas de Dados

Lista sobre Estruturas de Dados Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Exercícios: Recursão

Exercícios: Recursão Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial

Leia mais

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010 Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti

Leia mais

Lista de Exercícios 2 Condicionais

Lista de Exercícios 2 Condicionais Introdução à Ciência da Computação - 113913 Lista de Exercícios 2 Condicionais Observações: As listas de exercícios serão corrigidas por um corretor automático, portanto é necessário que as entradas e

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo

Leia mais

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Aula 3 Primeiros programas

Aula 3 Primeiros programas Aula 3 Primeiros programas FACOM-UFMS 2012 OBJETIVOS DA AULA Introdução ao CodeBlocks; Criação dos primeiros programas; Esta aula foi baseada nos capítulos 3 e 4 da apostila de Programação de Computadores

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos [email protected] Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

Ficha 1 Noções de sequência e decisão em algoritmia

Ficha 1 Noções de sequência e decisão em algoritmia Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução

Leia mais

Laboratório de Programação A Exercícios sobre vetores e matrizes

Laboratório de Programação A Exercícios sobre vetores e matrizes Universidade Federal do Amazonas Instituto de Ciências Exatas Departamento de Ciência da Computação Laboratório de Programação A - 2011.1 Exercícios sobre vetores e matrizes Observação Esta lista será

Leia mais

Programação Universidade da Beira Interior Departamento de Informática 2007/08

Programação Universidade da Beira Interior Departamento de Informática 2007/08 Programação Universidade da Beira Interior Departamento de Informática 1. Faça o fluxograma e o respectivo programa que resolva equações de 2º grau (ax 2 +bx+c=0). O programa deverá pedir ao utilizador

Leia mais

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For. Curso Básico de Programação Aula 11 Revisão Aula Anterior Laços de Repetição While; Do-While; For. Introdução à Linguagem C Laços de Repetição While Do-While For while () { } do {

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando

Leia mais

Aula 03 - Introdução ao Scilab (p2)

Aula 03 - Introdução ao Scilab (p2) BCC701- Programação de Computadores I Aula 03 - Introdução ao Scilab (p2) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM

Leia mais

Seleção de Problemas:

Seleção de Problemas: 2º Contest Noturno 18 de Julho 2013 Servidor CD MOJ: https://www.brunoribas.com.br/~moj/ Seleção de Problemas: Bruno Ribas 1 Estou com sorte! Problema: A Código Fonte: sorte.{c,cpp,pas,java} Google é um

Leia mais

Lista de Exercícios 3

Lista de Exercícios 3 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação

Leia mais

Lista de Exercícios STRING LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI.

Lista de Exercícios STRING LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. Lista de Exercícios STRING LINGUAGEM DE PROGRAMAÇÃO PROF. EDUARDO SILVESTRI. ATUALIZADO EM: 29/10/2007 1. Faça um programa que inverta uma string: leia a string com gets e armazene-a invertida em outra

Leia mais

MODALIDADE PROGRAMAÇÃO 1ª FASE

MODALIDADE PROGRAMAÇÃO 1ª FASE MODALIDADE PROGRAMAÇÃO 1ª FASE A PROVA TERÁ DURAÇÃO DE DUAS HORAS E TRINTA MINUTOS Este Caderno contém 6 problemas 24 de Maio de 2019 Olimpíada Regional de Informática 2019 - Modalidade Programação - Fase

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres CURSO BÁSICO DE PROGRAMAÇÃO AULA 11 Revisão Aula Anterior Vetores Cadeia de Caracteres Introdução a Linguagem C Laços de Repetição While Do-While For while() { } do { }while();

Leia mais

Lista de Exercícios 3 Laço de Repetição For e While

Lista de Exercícios 3 Laço de Repetição For e While Introdução à Ciência da Computação - 1191 Lista de Exercícios Laço de Repetição For e While Observações: As listas de exercícios serão corrigidas por um corretor automático, portanto é necessário que as

Leia mais

Introdução. O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores.

Introdução. O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores. Aula BOCA Introdução O BOCA Online Contest Administrator é um sistema de correção online de códigos utilizado em competições de programação de computadores. A correção é feita através de casos de teste:

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Segundo trabalho de Organização e Recuperação da Informação FACOM- UFU Professor: Wendel Melo

Segundo trabalho de Organização e Recuperação da Informação FACOM- UFU Professor: Wendel Melo Segundo trabalho de Organização e Recuperação da Informação 2017-02 FACOM- UFU Professor: Wendel Melo Descrição O trabalho consiste na implementação de um programa que, a partir da construção do índice

Leia mais

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Variáveis e Entrada de Dados Marco André Lopes Mendes  marcoandre.googlepages. Variáveis e Entrada de Dados Marco André Lopes Mendes [email protected] [email protected] marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma

Leia mais

Trabalho de Programação 2 Processador CESAR

Trabalho de Programação 2 Processador CESAR Trabalho de Programação 2 Processador CESAR 1. Descrição Geral A empresa TABLETEROS S.A. assinou um contrato milionário de fornecimento de ultrabooks e teve que aumentar o número de estantes. Agora, a

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 05 Entrada de dados Leia scanf Entrada dos dados Entrada de dados compreende a operação

Leia mais

Lista de Exercícios 4

Lista de Exercícios 4 Introdução à Ciência da Computação - 1191 Lista de Exercícios Funções Frutíferas Observações: As listas de exercícios serão corrigidas por um corretor automático, portanto é necessário que as entradas

Leia mais

Algoritmos e Técnicas de Programação

Algoritmos e Técnicas de Programação Algoritmos e Técnicas de Programação Estrutura, Visualg e Variáveis [email protected] Programação Estruturada A programação estruturada (Top-Down) estabelece uma disciplina de desenvolvimento

Leia mais

Fundamentos de Lógica e Algoritmos. Aula 3.2 IDLE, Variáveis e Tipos. Prof. Dr. Bruno Moreno

Fundamentos de Lógica e Algoritmos. Aula 3.2 IDLE, Variáveis e Tipos. Prof. Dr. Bruno Moreno Fundamentos de Lógica e Algoritmos Aula 3.2 IDLE, Variáveis e Tipos Prof. Dr. Bruno Moreno [email protected] IDLE O IDLE é um ambiente de desenvolvimento integrado para Python; O IDLE permite: Escrever

Leia mais

Introdução a Matrizes

Introdução a Matrizes Programação de Computadores I UFOP DECOM 2013 2 Tutorial Introdução a Matrizes Resumo Neste tutorial você irá aprender como criar matrizes, como realizar operações aritméticas básicas sobre matrizes e

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

O usuário pode restringir dados a um determinado tipo, como números inteiros, números decimais ou texto, e definir limites para as entradas válidas.

O usuário pode restringir dados a um determinado tipo, como números inteiros, números decimais ou texto, e definir limites para as entradas válidas. , %&!', A Validação de Dados permite que você determine condições para restringir os dados a serem digitados numa ou mais células. Dessa forma, tornando sempre válidas as informações numa planilha. O usuário

Leia mais

PROGRAMAÇÃO DE COMPUTADORES

PROGRAMAÇÃO DE COMPUTADORES PROGRAMAÇÃO DE COMPUTADORES COMANDOS E FORMATOS DE ENTRADA E SAÍDA 1 COMANDOS E FORMATOS DE ENTRADA E SAÍDA Os comandos de entrada e saída, na sua forma mais simplificada, possuem a seguinte estrutura:

Leia mais

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores Professor David Menotti ([email protected]) BCC0 Introdução à Programação (0-0) Prof. Reinaldo Silva Fortes Prática 0 Estruturas de Dados Homogêneas Vetores ) Escreva um programa que armazene em um vetor

Leia mais

Questão 01 (Neilor Tonin) Aula Prática 3: Estrutura Condicional. Entrada. Saída. Exemplo de entrada e Saída. - Procedimento para a entrega:.

Questão 01 (Neilor Tonin) Aula Prática 3: Estrutura Condicional. Entrada. Saída. Exemplo de entrada e Saída. - Procedimento para a entrega:. BCC201 Introdução à Programação (2016-01) Departamento de Computação - Universidade Federal de Ouro Preto - MG Professor: Reinaldo Fortes (www.decom.ufop.br/reinaldo) Estagiário docente: Washington Silva

Leia mais

Sistemas de Numeração.

Sistemas de Numeração. Sistemas de Numeração. No início deste curso dissemos que computadores só entendem informações em números binários, hexadecimais ou octais. Agora teremos a oportunidade de conhecer mais a fundo esses sistemas

Leia mais

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P SINTAXE BÁSICA Neste capítulo vamos apresentar a estrutura básica do PHP. Para iniciar a construção de um

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca [email protected] Aula 2

Leia mais

1ª Lista de Exercícios

1ª Lista de Exercícios Universidade Federal Fluminense Instituto de Computação Departamento de Ciência da Computação Curso: Programação de Computadores II Prof.: Anselmo Montenegro Setembro de 2016 1ª Lista de Exercícios Conceitos

Leia mais

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior ALGORITMOS E APLICAÇÕES FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior Formato Básico do Pseudocódigo Tipos de dados O VisuAlg prevê quatro tipos de dados: inteiro, real,

Leia mais

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a

Leia mais

Seleção de Problemas:

Seleção de Problemas: 3º Contest Noturno 25 de Julho 213 Servidor CD MOJ: https://www.brunoribas.com.br/~moj/ Seleção de Problemas: Bruno Ribas 1 Par ou ímpar Problema: A Código Fonte: par.{c,cpp,pas,java} Muitas crianças gostam

Leia mais

Praticar os princípios da ordenação, cópia de formatos, hifenização, trabalho com múltiplos documentos, modos de visualização e impressão.

Praticar os princípios da ordenação, cópia de formatos, hifenização, trabalho com múltiplos documentos, modos de visualização e impressão. Sessão nº 7 Mais opções de formatação e impressão Objectivos: Praticar os princípios da ordenação, cópia de formatos, hifenização, trabalho com múltiplos documentos, modos de visualização e impressão.

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIM0320 Algoritmos e Programação de Computadores #VARIÁVEIS #TIPOS DE DADOS E L I EZ I O S O A R ES E L I EZ

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Compiladores. Análise Léxica

Compiladores. Análise Léxica Compiladores Análise Léxica Regras Léxicas Especificam o conjunto de caracteres que constituem o alfabeto da linguagem, bem como a maneira que eles podem ser combinados; Exemplo Pascal: letras maiúsculas

Leia mais

Caderno de Problemas

Caderno de Problemas Treinamento de Programação para Competição 2016 02 de Julho de 2016 Caderno de Problemas Informações Gerais Este caderno contém 5 problemas; as páginas estão numeradas de 2 a 4, não contando esta página

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

PROBABILIDADE E ESTATÍSTICA. Profa. Dra. Yara de Souza Tadano

PROBABILIDADE E ESTATÍSTICA. Profa. Dra. Yara de Souza Tadano PROBABILIDADE E ESTATÍSTICA Profa. Dra. Yara de Souza Tadano [email protected] Aula 5 09/2014 Probabilidade Espaços Amostrais e Eventos Probabilidade e Estatística 3/41 Experimentos Aleatórios Experimento

Leia mais

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema Python Listas e Strings Prof. Paulo Henrique Ribeiro Gabriel (Com base no material do Prof. André Backes) Listas Por que usar listas? Listas As variáveis declaradas até agora são capazes de armazenar um

Leia mais

EXPRESSÕES RELACIONAIS

EXPRESSÕES RELACIONAIS AULA 7 EXPRESSÕES RELACIONAIS 7.1 Operadores relacionais Uma expressão relacional, ou simplesmente relação, é uma comparação entre dois valores de um mesmo tipo. Esses valores são representados na relação

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2013-1 Objetivos Entender o mecanismo de um programa em C/C++ Apresentar e estrutura da Linguagem C/C++

Leia mais

PROBLEMA A TROCA DE CARTAS

PROBLEMA A TROCA DE CARTAS PROBLEMA A TROCA DE CARTAS Nome do arquivo fonte: troccard.c, troccard.cpp ou troccard.java Alice e Beatriz colecionam cartas de Pokémon. As cartas são produzidas para um jogo que reproduz a batalha introduzida

Leia mais