Algoritmia e Programação



Documentos relacionados
Exercícios: comandos de repetição

Exercícios: Comandos de Repetição

Ficheiros binários 1. Ficheiros binários

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

Exercícios: Vetores e Matrizes

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

17. Faça um programa que escreve na tela a mesma frase 10vezes. E depois faça com que o programa mostre o número de cada linha no início e no final

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Exercícios: Recursão

Exercícios: variáveis e expressões

Estruturas de Repetição

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

- no assunto colocar [ALG] PRIMEIRA PARTE

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

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

Lista de Exercícios - Programação I (Pascal/ Python)

Lista 4 Introdução à Programação Entregar até 07/05/2012

a) 2 b) 3 c) 4 d) 5 e) 6

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Sistemas Numéricos. Tiago Alves de Oliveira

LISTA DE EXERCÍCIOS PARTE 1 (ESTRUTURAS SEQUENCIAIS)

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Exercícios: Vetores e Matrizes

Os dados quantitativos também podem ser de natureza discreta ou contínua.

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Exercícios de Fixação Aulas 05 e 06

Exercícios (if/ if else/ if elseif else)

CADERNO DE EXERCÍCIOS ALGORITMOS

Aula 6 Medidas de Tendência Central

EXERCÍCIOS DE ESTRUTURA DE REPETIÇÃO - ALGORITMOS

FUNÇÕES MATEMÁTICAS NÚMERO : PI() SENO E COSSENO: SEN() E COS()

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

2ª Lista de Exercícios

Planificação Anual de Matemática 5º Ano

Apontamentos de matemática 5.º ano - Múltiplos e divisores

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

PROVA DE AFERIÇÃO DO ENSINO BÁSICO 2011 A PREENCHER PELO ALUNO

Preparação para o teste intermédio de Matemática 8º ano

4ª Lista de Exercícios de Programação I

Exercícios: Comandos de Repetição

Microsoft Excel Ficha prática n. 2

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

Exercícios sobre algoritmos

(PROVA DE MATEMÁTICA DO CONCURSO DE ADMISSÃO À 5ª SÉRIE CMB ANO 2005 / 06) MÚLTIPLA-ESCOLHA. (Marque com um X a única alternativa certa)

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Algoritmos & Programação

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

x = xi n x = xifi fi 1. MÉDIA Exercício: Quando a distribuição é simétrica, a média e a mediana coincidem.

Lista de Exercícios Critérios de Divisibilidade

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

Representações de caracteres

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2

MATEMÁTICA ENSINO FUNDAMENTAL

Matemática Régis Cortes MÚLTIPLOS E DIVISORES

I Lista de Exercícios

ANÁLISE DE CIRCUITOS LABORATÓRIO

Nome: N.º: Turma: Classificação: Professor: Enc. Educação:

OBSERVAÇÕES: EXERCÍCIOS

Congruências Lineares

Determinantes. Matemática Prof. Mauricio José

Microsoft Excel Ficha prática n. 1

Actividade de enriquecimento. Algoritmo da raiz quadrada

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

FRAÇÃO. Número de partes pintadas 3 e números de partes em foi dividida a figura 5

EXAME DE MACS 2º FASE 2014/2015 = 193

NDMAT Núcleo de Desenvolvimentos Matemáticos

Ficha Prática 5: Cap 3.Princípios Elementares de Contagem

Matemática A. Versão 1. Na sua folha de respostas, indique de forma legível a versão do teste. Teste Intermédio de Matemática A.

4ª Lista de Exercícios de Programação I

Prática. Exercícios didáticos ( I)

1.2. Grandezas Fundamentais e Sistemas de Unidades

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

ESCOLA SECUNDÁRIA DE CASQUILHOS

POTENCIAÇÂO. A potenciação é uma forma de representar uma multiplicação de fatores iguais.

Gabarito de Matemática do 6º ano do E.F.

Programação para Computação

Exercícios Repetição

FRAÇÃO Definição e Operações

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Microsoft Excel Ficha prática n. 8

TUTORIAL MATLAB Victor Breder 2016

=...= 1,0 = 1,00 = 1,000...

1. Números. MatemáticaI Gestão ESTG/IPB Departamento de Matemática. Números inteiros. Nota: No Brasil costuma usar-se: bilhão para o número

2ª Lista de Exercícios

Cap Escrever uma função que aceite como parâmetro um número inteiro e retorne o número que corresponde a trocar os dígitos do parâmetro (por exe

Prova de Aferição de Matemática

A. Equações não lineares

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

Gabarito - Colégio Naval 2016/2017 Matemática Prova Amarela

Teste Intermédio de Matemática A Matemática A Entrelinha 1,5 (Versão única igual à Versão 1) 12.º Ano de Escolaridade

BLOCO: ESPAÇO E FORMA

Transcrição:

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA Algoritmia e Programação AULAS PRÁTICAS 2 0 0 4 / 2 0 0 5 Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa

1. ESTRUTURA DE CONTROLO DE SEQUÊNCIA 1. Escreva um programa que faça a soma de dois números e mostre o resultado. 2. Escreva um programa que dado um valor em escudos converta para euros e mostre o resultado. euros = escudos / 200.482) 3. Escreva um programa que calcule a área de um quadrado e mostre o resultado. (área = lado * lado) 4. Escreva um programa que, dado o raio de uma esfera, calcula o seu volume e mostre o resultado. Considere o valor de π = 3,1415. (volume = 4/3 * π R 3 ) 5. Escreva um programa que dado o número de segundos converta para o formato HH:MM:SS e mostre nesse formato. 6. Escreva um programa que dado o tempo no formato HH:MM:SS converta para segundos e mostre o resultado. 2. INSTRUÇÕES DE CONTROLO DE DECISÃO E REPETIÇÃO 1. Escreva um programa que dado um número calcule o respectivo módulo e apresente o resultado. 2. Escreva um programa que realize uma calculadora com as 4 operações aritméticas (+, -, *, /) só para inteiros. O utilizador introduz o valor dos operandos e a operação a realizar, por exemplo: 3 + 5 e o programa acrescenta o resultado = 8 3. Escreva um programa que, dado um carácter, converta para maiúsculo caso seja um carácter minúsculo e vice-versa. Caso seja outro carácter não faz qualquer conversão. (A = a a + A ) (a= A + a - A ) 4. Escreva um programa que permita verificar se uma data é valida. (ano bissexto: se (divisível por 4 e não por 100) ou divisível por 400 ) Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 2

6. Escreva um programa que permita determinar a classificação de um aluno na cadeira de Algoritmia e Programação. A avaliação da cadeira tem duas componentes: Nota da frequência (NFREQ) e prova de exame (PE). Cada componente tem um peso de 50% na classificação final. A NFREQ é determinada da seguinte forma: 3 mini-testes com um peso de 10 % cada, e por um trabalho prático com um peso de 70%. Não existe nota mínima na NFREQ. Na PE existe nota mínima de 7 valores (caso nota na PE seja inferior ou igual 7 ao aluno é considerado Não classificado. O aluno que falte a mais de 1/3 das aulas práticas é-lhe atribuído Não Frequentou (NF). As classificações são atribuídas de 0 a 20 valores. 7. Escreva um programa que imprima a tabuada de um qualquer número inteiro introduzido pelo utilizador no seguinte formato: 5x1=5 5x2=10... 5x9=45 5x10=50 8. Escreva um programa que calcule o seguinte somatório: S = n i= 1 a i * b O valor das variáveis é determinado pelo utilizador. 9. Escreva um programa que determine se um número inteiro é primo. (os números primos são só divisíveis pela unidade e por ele próprio ) 10. Escreva um programa para determinar o máximo divisor comum entre dois números. 11. Escreva um programa para determinar se um dado número é de Amstrong. (um número de Amstrong são aqueles que somando os cubos dos dígitos dá ess número, por ex: 407=4 3 +0 3 +7 3 ) Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 3

12. Descreva um algoritmo que a partir dos tempos de início e de fim de uma determinada tarefa expressos em Horas e Minutos e Segundos, calcule o tempo de duração da tarefa expresso em horas. 13. Descreva um algoritmo que, dados 2 números, mostre todos os números pares do intervalo constituído pelos dois números, por ordem decrescente. 3. INSTRUÇÕES DE CONTROLO DE DECISÃO E REPETIÇÃO EM ESTRUTURAS ENCAIXADAS 1. Escreva um programa que permita ao utilizador introduzir números até que digite o zero. O programa deve: a. Determinar o número de números introduzidos (o zero não conta); b. Determinar o maior e o menor; c. Determinar o número de números pares e ímpares; d. Determinar o número de números positivos e negativos. Nota: podem ser introduzidos números negativos. 2. Escreva um programa que mostre todos os anos bissextos entre 1900 e 2000. 3. Um número é perfeito se for igual a soma dos seus divisores menores que o próprio número. Por exemplo, 6 é um número perfeito (6=1+2+3). Descreva um algoritmo que mostre os números perfeitos menores que 1000. 4. Ler 100 números, determinar o maior, o menor e a média dos 100 números lidos. Elabore o algoritmo. 5. Determinar o maior número de uma sequência de números lidos do teclado até ser digitado o número zero. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 4

4. FUNÇÕES 1. Como sabemos, a lei de Ohm é uma relação entre a corrente (I), a tensão (V) e a resistência (R), veja o circuito eléctrico abaixo: Lei de Ohm: V I = R a) Escreva uma função que recebe os valores de V e R como parâmetros, e calcule a corrente I. b) Faça um programa que permita testar a função anterior. 2. Escrever uma função que recebe um número inteiro e devolve o maior algarismo contido nesse número. 3. Escrever uma função que recebe um nº inteiro e devolve: 1 se o nº é perfeito 0 se o nº não é perfeito Um nº perfeito é aquele cuja soma dos seus divisores é igual ao próprio nº. Por exemplo: 6 1+2+3=6 "é perfeito" 8 1+2+4=7 "não é perfeito" 4. Calcular o somatório: n i= 1 2 n n Crie uma função para determinar cada termo i da série. 5. Determinar qual o nº possuidor de mais divisores. O limite superior é definido pelo utilizador. a) funcao2() recebe um nº e devolve a quantidade de divisores que possui. b) funcao1() recebe o nº limite e determina qual o nº inferior ou igual a ele que possui a maior quantidade de divisores. 6. Escreva uma função que recebe dois parâmetros (caracteres) e troque os seus valores. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 5

7. Escreva uma função que, dados dois números reais, retorna a média deles arredondada para um inteiro, e devolve os números por ordem crescente. Faça um programa que permita testar a função anterior. 8. Escrever uma função que recebe dois nºs inteiros (Numerador e Denominador). A função deve simplificar a fracção, alterando os valores (Numerador e Denominador). Implemente também a função MDC (Máximo Divisor Comum) para auxiliar na simplificação. Faça um programa que permita testar as funções anteriores. 9. Escrever uma função para inverter os dígitos de um número passado como argumento. 10. Uma empresa pretende enviar cifrada uma sequência de inteiros decimais de 4 dígitos (DigDigDigDig). A cifra consiste em: substituir cada dígito Dig por (Dig+8)%10 (i.e., adiciona 8 e calcula o resto da divisão do resultado por 10); depois troca o terceiro dígito com o primeiro e troca o quarto dígito com o segundo. a) Escreva uma função que receba um inteiro decimal de 4 dígitos e o devolva cifrado. b) Escreva uma função que receba um inteiro cifrado e o decifre para o valor original. c) Escreva uma função que apresente um menu com 2 opções, cifrar e decifrar número, peça ao utilizador para escolher uma das opções, e retorne a opção escolhida. d) Faça um programa que permita testar as funções anteriores. 11. Fazer um programa que calcule a Resistência Equivalente dum circuito com duas resistências em série ou em paralelo. O programa deve permitir ao utilizador escolher entre os dois. Crie as funções Serie() e Paralelo(). Série: R = R1 + R2 Paralelo: R1 R2 R = R1 + R2 12. Escreva uma função que retorne o número de dígitos que compõem um número inteiro, passado como argumento da função. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 6

13. Os Números de Keithinho são números inteiros positivos, com pelo menos dois algarismos, que satisfazem a seguinte propriedade: Seja K>9 um Número de Keithinho com N algarismos. Se for construída uma sequência cujos primeiros N termos são os algarismos do número K (começando pelo mais significativo), e em que cada um dos restantes termos da sequência é a soma dos N termos anteriores, então o número K é um dos termos dessa sequência. Por exemplo, 14 e 197 são Números de Keithinho: 14 1,4,5,9,14 197 1,9,7,17,33,57,107,197 14. Construa uma função que verifique se um dado número inteiro positivo com 3 algarismos (N=3) é um Número de Keithinho. 15. Escreva uma função que recebe como parâmetro um inteiro positivo N e devolve a menor potência de 2 maior ou igual a N. 16. Escreva um programa que calcule o salário semanal de um trabalhador. As entradas são o número de horas empregadas na semana e o valor de cada hora. Até 40 h/semana usa-se o valor dado. Acima de 40h e até 60h há um bónus de 50% para essas horas. Acima de 60h há um bónus de 100% para essas horas. Use uma função para fazer os cálculos. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 7

5. VECTORES 1. Escreva um programa que defina um vector de N inteiros e implemente as seguintes funções: Uma função que faça a leitura de 10 valores (inteiros), guardando-os em memória RAM; Uma função que retorne a diferença entre o maior e o menor valor do vector; Uma função que devolva o número de valores pares e impares do vector; Uma função que devolva qual o número máximo de elementos seguidos, por ordem crescente; 2. Escreva um programa que defina 2 vectores de N inteiros e implemente as seguintes funções: Uma função que faça a leitura de 2 vectores de inteiros com 10 elementos cada, guardando-os em memória RAM; Uma função que devolva o valor que existe mais vezes nos dois vectores; Uma função que devolva o vector sem elementos repetidos, de forma ordenada, bem como o número de elementos do novo vector; O Programa deve permitir visualizar os resultados. 3. Escreva um programa que defina 1 vector de N inteiros e implemente as seguintes funções: Uma função que faça a leitura das 10 notas atribuídas por cada júri a 1 atleta de ginástica, guardando-os em memória RAM.; Uma função que retorne a nota do atleta, sabendo que esta é a média das notas do júri, com excepção da melhor e da pior nota obtida; Uma função que retorne a mediana das 10 notas. Mediana é o valor central de uma série de números. Quando existe um número par de elementos, define-se mediana como a média dos dois números centrais; O Programa deve permitir visualizar os resultados. 4. Elabore um programa que permita gerir o stock de um pequeno armazém de produtos alimentares. Sobre cada produto a informação relevante é o código e a quantidade. O programa deve ter as seguintes funcionalidades: Adicionar um novo produto Actualizar a quantidade de um produto já existente Indicar a quantidade em stock de determinado produto Listar todos os produtos Eliminar um determinado produto Nota: O programa deve usar dois vectores: um do tipo long para armazenar os códigos dos produtos e um do tipo inteiro para armazenar as quantidades, correspondendo a posição i do vector de códigos ao número na posição i do outro vector. O vector de códigos deve estar sempre ordenado por ordem crescente. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 8

6. ESTRUTURAS E VECTORES DE ESTRUTURAS 1. Declare uma estrutura para armazenar o nº de registo do livro, o título, o autor, a editora, a área a que o livro pertence e guardar também a informação referente à requisição do livro, nomeadamente a data de requisição e de devolução do livro. a) Faça um programa com duas funções, uma para preencher a estrutura e outra para mostrar a informação armazenada na estrutura. b) Defina um vector de N estruturas descritas na alínea anterior, que permita armazenar a informação referente aos livros existentes numa biblioteca. c) Utilizando esse vector pretende-se fazer um programa que permita: 1 - Inserir os dados dos livros 2 Listar todos os livros 3 - Procurar um determinado livro dado o titulo 4 Ordenar os livros por título 5 Listar os livros de um determinado autor ou editora 2. Crie uma estrutura para descrever restaurantes. A estrutura deve armazenar o nome, endereço, preço médio e o tipo de comida. Crie um vector de estruturas e escreva uma função que o preencha a partir do teclado e outra que imprima todos os restaurantes de um certo tipo de comida. a) Escreva uma função que liste por ordem crescente de preços todos os restaurantes de um certo tipo de comida. 3. Declare uma estrutura capaz de armazenar o nome, o número, o ano de entrada, o curso e quantidade de cadeiras feitas. Defina um vector de 100 estruturas. a) Escreva uma função para ler os valores para uma determinada estrutura do vector. b) Para um determinado curso, a perguntar ao utilizador, o programa deve responder quantos alunos fizeram 10 ou menos cadeiras em mais de cinco anos. c) O programa deve dizer qual o curso com melhor aproveitamento (curso com maior média de cadeiras feitas por aluno). d) Visualize no monitor todos os cursos inseridos sem repetições. 4. Declare uma estrutura para descrever o mês do ano. A estrutura deve ser capaz de armazenar o nome do mês, a abreviatura em três letras, o número de dias e o número do mês. a) Defina um vector de 12 estruturas descritas na alínea anterior e inicialize-as com dados de um ano bissexto. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 9

b) Escreva uma função que, dado o número do mês, determina o total de dias do ano até àquele mês. Assuma que a estrutura e o vector das alíneas anteriores foram declaradas globalmente. c) Reescreva a função anterior recebendo o nome do mês em vez do número. d) Escreva um programa que solicite ao utilizador o dia e o mês e imprima o total de dias do ano até ao digitado. O mês pode ser o seu número, nome ou abreviatura. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 10

7. MATRIZES 1. Escreva um programa que permita: ler uma matriz de dimensão máxima 10X10, guardando os valores em memória RAM; guardar os valores pares da matriz num vector e elementos impares noutro vector; ao utilizador visualizar um ou outro vector, dependendo da opção escolhida no programa principal; Nota: use funções para cada uma das opções 2. Escreva um programa que permita: ler uma matriz quadrada de dimensão máxima 10, guardando os valores em memória RAM; calcular o somatório do triângulo inferior esquerdo; calcular o somatório do triângulo superior direito; calcular o somatório do triângulo superior esquerdo; calcular o somatório do triângulo inferior direito; O Programa deve visualizar os resultados, bem como dar a escolher ao utilizador qual das operações pretende efectuar. (use funções para cada uma das opções) 3. Escreva um programa que dada uma matriz quadrada calcule a sua transposta. 4. Escreva um programa que efectue a multiplicação de 2 matrizes. 5. Escreva um programa para realizar a seguinte operação: M = M1+M2*M3; onde M1, M2 e M3 são matrizes. M e M1 tem dimensão 3X5; M2 tem dimensão 3X4; M3 tem dimensão 4X5. Os componentes das matrizes M1, M2 e M3 são fornecidos via teclado. Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 11

8. MANIPULAÇÃO DE STRINGS 1. Elabore um programa que lê uma linha de texto e elimine todas as repetições consecutivas do mesmo caracter. 2. Elabore um programa que lê uma linha de texto e uma função que indique a percentagem de vogais que contém (atenção que, por exemplo, os espaços não devem ser contabilizados!). 3. Escreva um programa que leia uma string representando uma frase e uma palavra e faça uma função que indique o número de ocorrências da palavra na frase. Nota: Atenção com as palavras que contêm a palavra a encontrar! 4. Elabore um programa que recebe da linha de comando vários nomes de assinantes de um serviço e os armazena num vector. Faça as funções para: a) ordenar e apresentar os nomes por ordem alfabética, eliminando múltiplas ocorrências de espaços em branco por um só; b) apresentar todos os assinantes cujo primeiro nome seja igual ao especificado pelo utilizador; c) acrescentar a determinado assinante o seu título profissional. Exemplo: Dados de Entrada: Carlos Alberto Dias Jaime Fernando Matos da Silva Clara Maria Rodrigues Carlos Alberto Pereira Anabela Mota a) Nomes ordenados: Anabela Mota Carlos Alberto Dias Carlos Alberto Pereira Clara Maria Rodrigues Jaime Fernando Matos da Silva b) Apresentar assinantes, por exemplo, de nome Carlos : Carlos Alberto Dias Carlos Alberto Pereira c) Acrescentar ao assinante Jaime Fernando Matos da Silva o título Eng. Eng. Jaime Fernando Matos da Silva Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 12

5. Considere que existe um vector bidimensional (matriz) de letras com 10 linhas e 10 colunas do tipo sopa de letras. z z d e d o b a h t a v a e i o u d s I z z e e i o d e d o a v W e i o u d s e z z E e o o u o s e a v R e d o u s s e z z o d E d u s o e a v Y e D o u s u e z z U e i o u s r e a v I e i o u s o e a) Construa uma função que receba a matriz de letras, um vector com palavras a pesquisar e diga para cada palavra do vector, pelo menos uma sua ocorrência na matriz de letras numa linha, numa linha invertida, numa coluna ou numa coluna invertida, sem distinguir letras maiúsculas de minúsculas. Por exemplo, para a palavra dedo um resultado possível seria: na horizontal, na 1ª linha e 3ª coluna, na horizontal invertida, na 7ª linha e 3ª coluna; na vertical, na 2ª linha e 8 ª coluna; na vertical invertida, na 5ª linha e 5ª coluna. b) Construa uma função que receba a matriz de letras e diga qual a letra que aparece mais vezes, sem distinguir letras maiúsculas de minúsculas. Nota: Exame da época de recurso 2003/2004 Ana Madureira, Ana Almeida, Isabel Praça, José Avelino Marinho, Ricardo Almeida, Paulo Baltarejo Sousa 13