· 2020/1
1
Eletricidade Aplicada
UFPR
11
Eletricidade Aplicada
UFPR
11
Eletricidade Aplicada
UFPR
1
Eletricidade Aplicada
FSG
1
Eletricidade Aplicada
IFAL
5
Eletricidade Aplicada
UNINASSAU
4
Eletricidade Aplicada
PUC
2
Eletricidade Aplicada
UNINTER
1
Eletricidade Aplicada
UMC
1
Eletricidade Aplicada
UFMS
Texto de pré-visualização
CI208 – Programação de Computadores 2o Período Especial (2020-2021) Exercícios ♯10 Revisão Esta lista de exercícios será trabalhada durante as aulas online. Estes exercícios não valem nota ou frequência e serão usados para es- clarecer e consolidar os conceitos abordados nos diversos materiais da Sala de Estudos. Você também pode explorar os exercícios que estão no material complementar, também na Sala de Estudos. Nos exercícios abaixo, os nomes entre parênteses no início do enunciado são sugestões para os nomes dos programas solicitados. Exceto em casos em que seja explicitamente informado o contrário, os nú- meros lidos e escritos devem ser do tipo ’int’. A quantidade de elementos, linhas ou colunas utilizado deve ser definido como constante, utilizando o comando #define. Os exercícios não precisam ser entregues. O objetivo desta lista é possibili- tar a prática dos conceitos já vistos na disciplina. 1. (maxcols) Faça um programa que leia do usuário uma matriz N × M (N e M definidos via diretiva #define) e preencha um vetor de M elementos, tal que a posição i do vetor contenha o maior valor da coluna i da matriz. Ao final, o programa deve imprimir o vetor. 2. (flipvert) Faça um programa que leia do usuário uma matriz N × M (N e M definidos via diretiva #define), e altere a matriz lida invertendo a ordem dos elementos de cada coluna, imprimindo a matriz resultante na tela. A inversão deve ser feita na própria matriz lida, sem auxílio de matrizes auxiliares. 3. (segmento) Crie uma função chamada ehSegmento que recebe como parâmetros os seguintes ítens: um vetor de inteiros a, um vetor de inteiros b, um valor inteiro n que representa o tamanho do vetor a, um valor inteiro m que representa o tamanho do vetor b, e um inteiro p que representa uma 1 posição do vetor a. A função deve retornar 1 caso o vetor b seja um segmento do vetor a iniciado na posição p de a, ou retornar 0 caso contrário. Por exemplo, considere p = 2, e o vetor a (com n = 6) 6 5 4 3 8 9 Se o vetor b (com m = 3) for 4 3 8 o retorno da função deve ser 1. Por outro lado, se o vetor b (com m = 3) for 4 8 3 o retorno da função deve ser 0. 4. (matpermuta) Dizemos que uma matriz inteira A(n×n) é uma matriz de permutação se em cada linha e em cada coluna houver n − 1 elementos nulos e um único elemento igual a 1. Dada uma matriz inteira A(n × n) verificar se A é de permutação. Exemplos: 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 é de permutação, enquanto que: 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 2 não é. 5. (lincolnulas) Dada uma matriz A(n × m) imprimir o número de linhas e o número de colunas nulas da matriz. Exemplo: 0 0 0 0 1 0 2 2 4 0 5 6 0 0 0 0 tem duas linhas nulas e uma coluna nulas. 6. (quadradomagico) Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todos iguais. Exemplo: 8 0 7 4 5 6 3 10 2 é um quadrado mágico pois 8 + 0 + 7 = 4 + 5 + 6 = 3 + 10 + 2 = 8 + 4 + 3 = 0 + 5 + 10 = 7 + 6 + 2 = 8 + 5 + 2 = 3 + 5 + 7 Dada uma matriz quadrada A(n × n), verificar se A é um quadrado mágico. 7. (custotransp) Os elementos M[i, j] de uma matriz M(n×n) representam os custos de transporte da cidade i para a cidade j. Dados n itinerários, cada um com k cidades, calcular o custo total para cada itinerário. Exemplo: Página 2 de 3 4 1 2 3 5 2 1 400 2 1 3 8 7 1 2 5 O custo do itinerário 1 4 2 4 4 3 2 1 é: M[1, 4]+M[4, 2]+M[2, 4]+M[4, 4]+M[4, 3]+M[3, 2]+M[2, 1] = 3+1+400+5+2+1+5 = 417. 8. (intinerario) Considere N cidades numeradas de 1 a n que estão interligadas por uma série de es- tradas de mão única. As ligações entre as cidades são representadas pelos elementos de uma matriz quadrada L(n × n) cujos elementos Lij assumem o valor 1 ou 0 conforme exista ou não estrada direta que saia da cidade i e chegue na cidade j. Assim, os elementos da i-ésima linha indicam as estradas que saem da cidade i e os elementos da j-ésima coluna indicam as estradas que chegam à cidade j. Por convenção, Lii = 1. A figura abaixo ilustra um exemplo para n = 4: 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 a) Dado k, determinar quantas estradas saem e quantas chegam à cidade k. b) A qual das cidades chega o maior número de estradas? c) Dado k, verificar se todas as ligações diretas entre a cidade k e outras são de mão dupla. d) Relacionar as cidades que possuem saídas diretas para a cidade k e) Relacionar, se existirem: • As cidades isoladas, isto é, as que não têm ligação com nenhuma outra • As cidades das quais não há saída, apesar de haver entrada • As cidades das quais há saída sem haver entrada f) Dada uma seqüência de m inteiros cujos valores representam cidades e estão entre 1 e n, veri- ficar se é possível realizar o roteiro correspondente. No exemplo dado, o roteiro representado pela seqüência 3 4 3 2 1 (m = 5) é impossível Página 3 de 3
1
Eletricidade Aplicada
UFPR
11
Eletricidade Aplicada
UFPR
11
Eletricidade Aplicada
UFPR
1
Eletricidade Aplicada
FSG
1
Eletricidade Aplicada
IFAL
5
Eletricidade Aplicada
UNINASSAU
4
Eletricidade Aplicada
PUC
2
Eletricidade Aplicada
UNINTER
1
Eletricidade Aplicada
UMC
1
Eletricidade Aplicada
UFMS
Texto de pré-visualização
CI208 – Programação de Computadores 2o Período Especial (2020-2021) Exercícios ♯10 Revisão Esta lista de exercícios será trabalhada durante as aulas online. Estes exercícios não valem nota ou frequência e serão usados para es- clarecer e consolidar os conceitos abordados nos diversos materiais da Sala de Estudos. Você também pode explorar os exercícios que estão no material complementar, também na Sala de Estudos. Nos exercícios abaixo, os nomes entre parênteses no início do enunciado são sugestões para os nomes dos programas solicitados. Exceto em casos em que seja explicitamente informado o contrário, os nú- meros lidos e escritos devem ser do tipo ’int’. A quantidade de elementos, linhas ou colunas utilizado deve ser definido como constante, utilizando o comando #define. Os exercícios não precisam ser entregues. O objetivo desta lista é possibili- tar a prática dos conceitos já vistos na disciplina. 1. (maxcols) Faça um programa que leia do usuário uma matriz N × M (N e M definidos via diretiva #define) e preencha um vetor de M elementos, tal que a posição i do vetor contenha o maior valor da coluna i da matriz. Ao final, o programa deve imprimir o vetor. 2. (flipvert) Faça um programa que leia do usuário uma matriz N × M (N e M definidos via diretiva #define), e altere a matriz lida invertendo a ordem dos elementos de cada coluna, imprimindo a matriz resultante na tela. A inversão deve ser feita na própria matriz lida, sem auxílio de matrizes auxiliares. 3. (segmento) Crie uma função chamada ehSegmento que recebe como parâmetros os seguintes ítens: um vetor de inteiros a, um vetor de inteiros b, um valor inteiro n que representa o tamanho do vetor a, um valor inteiro m que representa o tamanho do vetor b, e um inteiro p que representa uma 1 posição do vetor a. A função deve retornar 1 caso o vetor b seja um segmento do vetor a iniciado na posição p de a, ou retornar 0 caso contrário. Por exemplo, considere p = 2, e o vetor a (com n = 6) 6 5 4 3 8 9 Se o vetor b (com m = 3) for 4 3 8 o retorno da função deve ser 1. Por outro lado, se o vetor b (com m = 3) for 4 8 3 o retorno da função deve ser 0. 4. (matpermuta) Dizemos que uma matriz inteira A(n×n) é uma matriz de permutação se em cada linha e em cada coluna houver n − 1 elementos nulos e um único elemento igual a 1. Dada uma matriz inteira A(n × n) verificar se A é de permutação. Exemplos: 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 é de permutação, enquanto que: 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 2 não é. 5. (lincolnulas) Dada uma matriz A(n × m) imprimir o número de linhas e o número de colunas nulas da matriz. Exemplo: 0 0 0 0 1 0 2 2 4 0 5 6 0 0 0 0 tem duas linhas nulas e uma coluna nulas. 6. (quadradomagico) Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todos iguais. Exemplo: 8 0 7 4 5 6 3 10 2 é um quadrado mágico pois 8 + 0 + 7 = 4 + 5 + 6 = 3 + 10 + 2 = 8 + 4 + 3 = 0 + 5 + 10 = 7 + 6 + 2 = 8 + 5 + 2 = 3 + 5 + 7 Dada uma matriz quadrada A(n × n), verificar se A é um quadrado mágico. 7. (custotransp) Os elementos M[i, j] de uma matriz M(n×n) representam os custos de transporte da cidade i para a cidade j. Dados n itinerários, cada um com k cidades, calcular o custo total para cada itinerário. Exemplo: Página 2 de 3 4 1 2 3 5 2 1 400 2 1 3 8 7 1 2 5 O custo do itinerário 1 4 2 4 4 3 2 1 é: M[1, 4]+M[4, 2]+M[2, 4]+M[4, 4]+M[4, 3]+M[3, 2]+M[2, 1] = 3+1+400+5+2+1+5 = 417. 8. (intinerario) Considere N cidades numeradas de 1 a n que estão interligadas por uma série de es- tradas de mão única. As ligações entre as cidades são representadas pelos elementos de uma matriz quadrada L(n × n) cujos elementos Lij assumem o valor 1 ou 0 conforme exista ou não estrada direta que saia da cidade i e chegue na cidade j. Assim, os elementos da i-ésima linha indicam as estradas que saem da cidade i e os elementos da j-ésima coluna indicam as estradas que chegam à cidade j. Por convenção, Lii = 1. A figura abaixo ilustra um exemplo para n = 4: 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 a) Dado k, determinar quantas estradas saem e quantas chegam à cidade k. b) A qual das cidades chega o maior número de estradas? c) Dado k, verificar se todas as ligações diretas entre a cidade k e outras são de mão dupla. d) Relacionar as cidades que possuem saídas diretas para a cidade k e) Relacionar, se existirem: • As cidades isoladas, isto é, as que não têm ligação com nenhuma outra • As cidades das quais não há saída, apesar de haver entrada • As cidades das quais há saída sem haver entrada f) Dada uma seqüência de m inteiros cujos valores representam cidades e estão entre 1 e n, veri- ficar se é possível realizar o roteiro correspondente. No exemplo dado, o roteiro representado pela seqüência 3 4 3 2 1 (m = 5) é impossível Página 3 de 3