• Nenhum resultado encontrado

eco02-lista05

N/A
N/A
Protected

Academic year: 2021

Share "eco02-lista05"

Copied!
5
0
0

Texto

(1)

b se os mesmos dígitos que forma a, também forma  b,   mesmo   que   em   posições   diferentes.   Exemplo:  5412434 é uma permutação de 4321445. Faça um  programa  que leia 2 números inteiros e positivos  onde  o valor máximo é 999.999.999. Em seguida  mostre na tela se o número é uma permutação do  outro. 2) Faça uma programa que declara uma matriz de  10x10 caracteres inicializada com valores abaixo e  solicita   ao  usuário   uma  palavra   de  busca   com  5  caracteres   onde   o   tamanho   máximo   é   4  terminador.   Essa   programa   deve   procurar   na  matriz quantas vezes ocorre a palavra de busca. A  ocorrência   da   palavra   na   matriz   pode   estar   na  horizontal ou horizontal invertida e na vertical ou  vertical   invertida.   No   exemplo   abaixo   foram  encontradas   4   ocorrências   da   palavra   de   busca  casa. Certifique­se que o programa não apresenta  memory leak. 0 1 2 3 4 5 6 7 8 9 0 Q F H Q P L P W S Y 1 A A N W A Z O Q A T 2 Z S U E S A S A C R 3 W A J R D X I L M E 4 S C M T F C U K N W 5 X V I C A S A J B C 6 E T K Y G V Y H V A 7 D G O U H B T G C S 8 C B L I J N R F X A 9 R Y P O K M E D Z Q

3)   Em   um   campo   de   batalha   existe   um  exército  com   300.000   homens   alinhados   em   300   filas  paralelas,   sendo   que   cada   soldado   contém   um  fusível com uma certa quantidade de projéteis no  fusível. O general passa uma folha quadriculada de  300x1000,   sendo   que   cada   soldado   escreve   sua  quantidade de projéteis. Faça  um programa  para  que o general digite essas quantidades de projéteis  em uma matriz. Em seguida o general digita uma  quantidade   qualquer   de   linha   e   colunas.   O  programa   deve   achar   na   matriz   qual   é   a   maior  quantidade   de   projéteis   para   a   configuração     de  linha   e   coluna   dada   pelo   general,   sem   mudar  nenhum   homem   de   posição.   Abaixo   segue   um  exemplo reduzido de um exército  de 25  homens  sendo que o general solicitou a quantidade de 2  linhas por 2 colunas, resultando o valor máximo de  apresenta memory leak. 0 1 2 3 4 0 10 2 3 4 5 1 0 2 4 6 8 2 1 3 5 7 9 3 6 7 8 9 8 4 10 6 4 2 0

4)   Faça   um   programa   que   leia   do   teclado   10   pares  valores   i   e   j   (sem   repetição   de   pares),   sendo   que  1<=i<=10   e   1<=j<=10.   A   cada   leitura   deve­se  armazenar o valor “X” de uma matriz de caracter de  ordem 10x10.  Exemplo após a leitura das 10 posições:   1 2 3 4 5 6 7 8 9 10 1 X 2 X X  3 X 4 X 5 6 X 7 8 X X 9 10 X X

Em   seguida   para   cada   posição   na   matriz   que   não  contém o valor X, armazene a quantidade de vizinhos  na horizontal, vertical e diagonal. Não armazene “0” se  a posição não contém  vizinho. Exemplo após a leitura das 10 posições:   1 2 3 4 5 6 7 8 9 10 1 1 1 1 1 X 2 1 2 1 X 2 1 1 2 X 1  3 3 X 2 1 1 1 4 2 X 2 5 1 1 1 1 1 1 6 1 X 1 7 1 1 2 2 2 1 8 1 X X 1 9 2 2 1 1 2 2 1 10 X X 1 5) Considere n cidades numeradas de 0 a n­1 que estão  interligadas por uma série de estradas de mão única. As  ligações   entre   as   cidades   são   representadas   pelos  elementos   de   uma   matriz   quadrada   L   nxn,   cujos  elementos lij assumem o valor 1 ou 0, conforme exista  ou não estrada direta que saia da cidade i e chegue à  cidade   j.   Assim,   os   elementos   da   linha   i   indicam   as 

(2)

coluna j indicam as estradas que chegam à cidade j.  Por convenção lii = 1. A figura mostra um exemplo  para n = 4.  0 1 2 3 0 1 1 1 0 1 0 1 1 0 2 1 0 1 1 3 0 0 1 1 Faça uma função que recebe a matriz [4][4] e deve  retornar   um     inteiro   que   indica   a   cidade   com   o  maior quantidade de entradas.

6)   Faça  um   programa  que   mostra   na   tela   as  coordenadas origem e destino onde as peças pretas  podem tomar uma peça branca. É dado uma matriz  de   inteiros   de   dimensões   8x8     que   representa   a  configuração   atual   de   um   jogo   de   damas,   sendo  que, 0 indica uma casa vazia, 1 indica uma casa  ocupada por uma peça branca e ­1 indica uma casa  ocupada por uma peça preta.  As regras para o jogo  de   damas   são:   a)   Os   movimentos   somente  acontecem   nas   casas   brancas;   b)   As   pretas   só  podem avançar no sentido crescente das linhas da  matriz, portanto, as brancas no sentido decrescente  das linhas da matriz; c) Apenas pode­se tomar uma  peça branca por vez e para isso, deve existir uma  casa   com   o   valor   zero   na   2ª   posição   diagonal  esquerda ou direita adjacente a uma pedra preta.  No exemplo de configuração abaixo a peça preta  linha­coluna   2­4   pode   tomar   a   peça   branca   3­3  movendo­se para 4­2 e a peça preta linha­coluna 3­ 5 pode tomar a peça branca 4­4 ou 4­6 movendo­se  para 5­3 ou 5­7 respectivamente.   0 1 2 3 4 5 6 7 0 ­1 ­1 ­1 ­1 1 1 0 0 0 2 0 1 ­1 ­1 3 0 1 ­1 1 4 0 0 1 1 5 ­1 0 0 0 6 0 1 1 0 7 1 1 1 7) Faça um programa que declara uma matriz de  10x10   caracteres   incializada   e   um   vetor   com   4  palavras   {   "gato",   "vaca",   "bode",   "anta"}   .   Esse  programa   deve   procurar   em   que   linha   e   coluna  começa  e  termina   cada  palavra.   A  ocorrência   da 

horizontal invertida e na vertical ou vertical invertida.  Abaixo segue um exemplo de matriz 10x10 caracteres  que procurou as palavras gato, vaca, bode e anta.  0 1 2 3 4 5 6 7 8 9 0 Q F H Q P L P W S Y 1 A B N W A Z O Q A T 2 Z O U E S O T A G R 3 W D J R D X I L M E 4 S E M T F C U K N W 5 X V I V A C A J B A 6 E T K Y G V Y H V T 7 D G O U H B T G C N 8 C B L I J N R F X A 9 R Y P O K M E D Z Q GATO INICIO 2,5 FIM 2,8 VACA INICIO 5,3 FIM 5,6 BODE INICIO 1,1 FIM 4,1 ANTA  INICIO 5,9 FIM 8,9 8) Sr. Zé das Couves   planta café e resolveu descobrir  qual   é   a   região   em   seu   cafezal   que   possui   a   menor  produtividade   para   retirar   os   pés   que   já   não   estão  produzindo   adequadamente.   Os   pés   de   café   estão  dispostos em 50 fileiras em que cada uma possui 100  pés de café. Na colheita desse ano, a produção em grãos  de cada pé de café foi guardada separadamente em um  saco e depois contabilizado. Faça  um programa  para  ler  a quantidade de grãos de café de cada pé de café e  guarda­la   em   uma   matriz.   Em   seguida   o   Zé   poderá  digitar uma quantidade de linhas e colunas, para que o  programa  identifique na matriz qual a região, formada  pela   quantidade   de   linhas   e   colunas,   tem   a   menor  produção. Para isso deve­se mostrar na tela os valores  da   menor   região   produtora.   Certifique­se   que   o  programa não apresenta memory leak.

9) O curso de Sistemas de Informação da AlFA deseja  saber   se   existem   alunos   cursando   as   disciplinas  Algoritmos, Linguagens de Programação mas não estão  cursando   Estruturas   de   Dados.   Existe   disponível   um  vetor que armazena as matriculas dos alunos que fazem  Algoritmos   (com   50   alunos);   um   outro   vetor   que  armazena as matriculas dos alunos de Linguagens de  Programação   (com   80   alunos);   e   um   outro   as  matriculas dos alunos de Estrutura de Dados (com 80  alunos). 

   int algo [50];    int prog[80];    int ed[80];

(3)

tentar acertar a cesta do time adversário. As cestas  podem valer: 1 ponto quando foram lançadas em  um lance livre; 2  pontos quando foram lançadas  em disputa; e 3 pontos quando foram lançadas em  disputa   após   a   linha   dos   3   pontos.   Faça  uma 

programa que lê um vetor com 100 posições onde 

cada posição desse vetor é uma estrutura contendo  informações   de   uma   cesta   com   os   seguintes  campos:   período,   minuto,   segundos,   jogador   e  pontos.     Essa   função   deve   retornar   qual   foi   o  jogador   que   fez   a   maior   quantidade   de   pontos,  sendo que somente esse vetor contém os números  dos jogadores. Para ajuda­lo já foram definidas as  estruturas   e   os   vetores   que   serão   usados   nesse  programa. typedef struct{    int periodo;    int min;    int seg;    int jogador;    int pontos; } tcesta; 11) No campeonato brasileiro de futebol   existem  20 times de futebol que confrontam entre si para  determinar o campeão. Portanto, existe 19 rodadas  onde em cada rodada existem 10 confrontos entre  times   distintos.   Faça  um   programa  em   que   o  usuário   digita   em   um   vetor   com   20   posições   a  tabela de classificação com os nomes dos times e  zere   seus   pontos.   Esse   vetor   é   formado   pelos  campos: time e pontos. Gere automaticamente em  um vetor chamado brasileiro todas as combinações  dos nomes dos time que se confrontam que totaliza  190 confrontos. Esse vetor é um registro formado  pelos   campos   time1,   gols1,   time2   e   gols2.   Em  seguida faça o usuário digite os gols marcados por  cada time nos 190 confrontos. Se em um confronto  houve empate no número de gols, cada time recebe  1 ponto em sua tabela de classificação. Se um time  ganha o confronto (marca mais gols que o outro),  recebe 3 pontos na tabela de classificação. No final  mostre   quem   foi   o   time   campeão   (aquele   que  marcou   maior   quantidade   de   pontos)   e   o   vice­ campeão   (aquele   que   marcou   a   segunda   maior  quantidade   de   pontos)   com   seus   respectivos  pontos. Considere que não tem valores repetidos  nos   números   de   pontos.   Lembre­se   de   usar   a  função strcpy para copiar e a função strcmp para 

estruturas   e   os   vetores   que   serão   usados   nesse  programa. typedef struct{ char [30] time; unsigned pontos; } tTabela; typedef struct{ char [30] time1; unsigned gols1; char [30] time2; unsigned gols2; } tConfronto; tTabela classificacao[20]; tConfronto brasileiro[190];

12) Faça um  programa  que o usuário digita um valor  pelo teclado e em seguida responda se esse numero faz  parte   da   sequencia   de   Fibonacci.   Os   dois   primeiros  números na sequencia de Fibonacci Fn são 1 e 1. O n­ ésimo   número   é   dado   pela   seguinte   formula: 

f

i

=

f

i−1

f

i−2 , para  

i3

. Por exemplo, os oitos  primeiros números da sequencia é { 1, 1, 2, 3, 5, 8, 13,  21}, assim, o número 7 não faz parte da sequencia de  Fibonacci   e   o   número   13   faz   parte   da   sequencia   de  Fibonacci.

13) Faça uma função chamada desvioPadrao que recebe  como parâmetro um vetor de 100 inteiros e retorna o  desvio   padrão   desses   valores.  O   desvio   padrão   é  definido pela raiz quadrada da variância. A variância é  definida   pelo   quadrado   da   somatória   das   diferenças  entre   cada   elemento   para   a   média,   ou   seja, 

vr =

n i=1

x

i

md

2 , onde md é a média do conjunto  e   xi  é   cada   elemento.   Pode   ser   usada   as   funções   da 

math.h  pow()  e   a   função  srqt().   O   vetor   já   foi  inicializado pelo teclado e portanto não é para fazer a  leitura dos dados no vetor. 

14) Uma cidade possui lotes que podem estar vazios, ou  com   casas   ou   com   prédios.   Todos   os   lotes   são  retângulos e possuem medidas de sua base e altura. A  cidade é formada por uma  distribuição de lotes em um  quadrado de 100 x 100. Abaixo são dados as definições  de um enumerado para tipos de lotes, de uma estrutura  que caracteriza os lote e uma matriz que define os lotes  da   cidade.   Faça   uma  função  chamada  maiorAreaComCasa   que   recebe   como   parâmetro   a  matriz de 100x100 do tipo lote e retorna qual é o maior 

(4)

casa.   O   cálculo   da   área   do   retângulo   é   base   x  altura. A matriz já foi inicializada pelo teclado e  portanto não é para fazer a leitura dos dados na  matriz. 

typedef   enum{VAZIO,   CASA,   PREDIO} 

enumConstrucao; typedef struct{    enumConstrucao tipo;    float base;    float largura;    } lote; lote cidade[100][100]; 15) Dois apostadores A e B apostaram cartelas na  mega­sena. Cada  cartela  na mega­sena contém 6  números distintos. O apostador A está concorrendo  com 150 cartelas e o apostador B está concorrendo  com   95   cartelas.   Faça   um  programa  em   C   que  inicialmente   faz   a   leitura   dos   valores   de   cada  cartela   do   apostador   A   e   do   apostador   B.   Para  facilitar o usuário não vai digitar valores repetidos  na mesma cartela e nem digitar cartelas repetidas  para   o   mesmo   jogador.   No   entanto,   os   valores  digitados   na   cartela   não   obedecem   nenhuma  ordem.   O   programa   deve   descobrir   quantas   das  cartelas do apostador A são iguais a do apostador  B.   Deve­se   utilizar   as   matrizes   a   e   b   definidas  abaixo para armazenar as cartelas do apostador A e  do apostador B.

int a[150][6]; int b[95][6];

16) Construa um  programa  em C onde o usuário  digita e armazena em variáveis as coordenadas X e  Y   de   1000   pontos   geográficos.   Em   seguida   o  programa deve encontrar nestes 1000 pontos quais  são os 3 pontos cuja soma entre suas distâncias seja  o   valor   máximo.     A   fórmula   para   calcular   a  distância   entre   dois   pontos   é: 

dist  A , B=

x

A

x

B

2



y

A

y

B

2 .   A   soma  entre 3 pontos é dist(A,B) + dist(B,C) + dist(C,A).  Essa soma deve ser a maior entre os 1000 pontos  do vetor.

um  jogo de  Damas  que  recebe  como parâmetro  uma  matriz de inteiros com dimensões 8x8 e dois números  inteiros representando uma linha e coluna qualquer da  matriz.   A   matriz  representa   a   configuração   atual   do  jogo de damas, sendo que, 0 indica uma casa vazia, 1  indica   uma   casa   ocupada   por   uma   peça   branca   e   ­1  indica uma casa ocupada por uma peça preta.   Para a  função retornar verdadeiro deve verificar se existe na  matriz uma peça preta na linha e coluna passada para a  função  e se consegue realizar a captura de uma peça  branca.  Em qualquer  outra  situação a função retorna  falso. A captura acontece quando a peça preta pula por  cima   da   peça   branca   estabelecendo­se   na   posição  consecutiva e vazia do tabuleiro.  A função somente faz  a verificação se é  possível  ou não caputrar,  mas não  realiza a captura. Certifique­se que a função não tenha  memory leak.  0 1 2 3 4 5 6 7 0 ­1 ­1 ­1 ­1 1 ­1 ­1 ­1 ­1 2 ­1 ­1 ­1 ­1 3 0 0 0 0 4 0 0 0 0 5 1 1 1 1 6 1 1 1 1 7 1 1 1 1 18) Faça uma função chamada capturaPecaAzul de um  jogo Reversi que recebe como parâmetro uma matriz de  inteiros   com   dimensões   8x8   e   dois   números   inteiros  representando uma linha e coluna qualquer da matriz.  A   matriz  representa   a   configuração   atual   do   jogo  reversi, sendo que, 0 indica uma casa vazia, 1 indica  uma casa ocupada por uma peça vermelho e ­1 indica  uma casa ocupada por uma peça azul.   Para a função  retornar   verdadeiro   deve   verificar   se   está   vazia   na  matriz, a posição linha e coluna passada para a função e  se   consegue   realizar   a   captura   de   peças   azuis.   Em  qualquer   outra   situação   a   função   retorna   falso.   Para  capturar a peça azul, deve colocar a sua peça vermelha  de   forma   a   encurralar   horizontal,   vertical   ou  diagonalmente uma linha de peças azuis consecutivas  entre suas peças vermelhas.   A função somente faz a  verificação   se   é   possível   ou   não   caputrar,   mas   não  realiza a captura. Certifique­se que a função não tenha  memory leak. Abaixo segue um exemplo de  captura de  peça azul:

A

C

(5)

0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 0 ­1 1 0 0 0 4 0 0 0 1 ­1 0 0 0 5 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0 0 1 1 1 0 0 0 4 0 0 0 1 ­1 0 0 0 5 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 19)  Dada a estrutura abaixo, que armazena dois  valores para as coordenadas x e y no plano, e o  vetor   coord   que   possui  100   elementos.   Faça  um 

programa onde o usuário digita os 100 valores de 

coordenadas x e y no vetor coord. Em seguida esse  programa deve achar qual é o ponto central que  gera   o   menor   raio   de   cobertura   para   os   demais  pontos.   É  dado   que   a   função  sqrt(p)  obtém  raiz  quadrada de p e função pow(p,q) eleva um número  a p uma potência q e que a fórmula para cálculo da  distância entre dois pontos P e Q no plano é:  typedef struct{    float x;    float y } tPonto; tPonto coord[100];

20)  No   ramo   da   matemática   conhecido   como  análise   real,   a   integral   de   Riemann,   criada   por  Bernhard   Riemann,   foi   a   primeira   definição  rigorosa de uma  integral de uma  função em um  intervalo. A função usada é f(x) = x2  e o usuário 

informa   3   valores:   a,   b   e   n.   Os   valores   a   e   b  representam o intervalo de integração e n divide  esse   intervalo   em   subintervalos   de   mesmo  tamanho.   A   divisão   do   intervalo   gera   retângulos  superiores   e   inferiores.   Faça  um   programa  que  calcula   a   diferença   da   somas   das   áreas   dos  retângulos superiores e inferiores de  Riemann. A 

Referências

Documentos relacionados

78 Figura 3.27 Padrão de difração de pós obtido para o complexo ácido nalidíxico:Zn através (a) de síntese por solução, em comparação com os difractogramas

Foram admitidas as seguintes simplificações, que podem oscilar e assim modificar um determinado valor, para mais ou para menos, e que o interessado em um caso

Resultados: Os subtipos mais comuns de TBEB, classificados pelas características na broncoscopia, foram tumoral e granular (em 22,2% para ambas) A baciloscopia de escarro

O luxuoso Contur design da DORMA abriga a avançada tecnologia eletromagnética do operador CS 80 MAGNEO para portas deslizantes, que opera com baixo consumo de energia..

Composição específica da ictiofauna na Gamboa do Perequê nos meses amostrados, com as freqüências absolutas observadas em número de exemplares (Obs), porcentagens

Potencial = Todos os produtos de mesma CT4 trabalhados pelo ABRADIMEX no canal durante o MATNOV 19;

#include &lt;stdio.h&gt; struct funcionario { int codigo; char nome[ 30 ]; char cargo[ 10 ]; int depto; float salario; }; int main () {. struct functionario

· Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. 5 Medidas de combate