• Nenhum resultado encontrado

UNIP – Universidade Paulista

N/A
N/A
Protected

Academic year: 2022

Share "UNIP – Universidade Paulista"

Copied!
5
0
0

Texto

(1)

UNIP – Universidade Paulista

Curso...: Bach. Ciência da Computação

Disciplina...: Linguagem de Programação Estruturada – Ling. C Professor...: Leandro Carlos Fernandes / Renê de Souza

.:: Lista de Exercícios #3 ::.

1) Faça um programa que leia um vetor de 10 elementos reais, calcule a soma dos elementos das posições pares do vetor e o produto dos elementos armazenados nas posições ímpares e escreva os resultados na tela.

2) Faça um programa que leia dois vetores de 10 elementos reais cada e armazene, em um terceiro vetor, os elementos dos dois primeiros, interpolando suas posições (... isto é, na primeira posição armazene o valor proveniente do primeiro vetor, na segunda posição, o valor da primeira posição do segundo vetor, na terceira posição, o segundo valor do primeiro vetor, na quarta posição, o segundo valor do segundo vetor, e assim por diante).

3) Faça um programa que leia um número inteiro qualquer entre 0 e 255 e calcule o seu equivalente em binário. Sabendo que:

20 | 2 15 | 2 34 | 2

0 10 | 2 1 7 | 2 0 17 | 2 0 5 | 2 1 3 | 2 1 8 | 2 1 2 | 2 1 1 | 2 0 4 | 2 0 1 | 2 1 0 0 2 | 2 1 0 0 1 | 2

1 0 (20) 10 = (10100) 2 (15) 10 = (1111) 2 (34) 10 = (100010) 2

4) Faça um programa de conversão de base numérica. O programa deverá apresentar uma tela de entrada com as seguintes opções:

< Conversão de base >

1: decimal para hexadecimal 2: hexadecimal para decimal 3: decimal para octal

4: octal para decimal 5: Encerra

Informe sua opção:

A partir da opção escolhida, o programa deverá pedir o número na base escolhida,lê-lo e apresentá-lo na base desejada. Em seguida, o programa deve perguntar ao usuário se ele deseja retornar ao menu principal ou finalizar o programa.

5) Faça um programa em C que calcule o valor da seqüência de Fibonacci para um número n dado pelo usuário.

Fibo(1) = 1 Fibo(2) = 1

Fibo(N) = Fibo(N-1)+Fibo(N-2)

6) Faça um programa que leia uma matriz 3x3 de inteiros e dê a sua transposta.

7) Faça um programa que leia uma matriz 3x3 de inteiros e calcule a soma de todos os seus elementos.

8) Faça um programa que leia duas matrizes 3x3 de inteiros e calcule o produto entre elas.

(2)

9) Faça um programa que leia uma matriz 3x3 de inteiros e o seu determinante.

10) Modifique o programa anterior para que receba uma matriz 3x3 de inteiros, calcule a soma dos elementos de cada coluna, armazenando o resultado da soma, em um vetor de 3 elementos.

11) Faça um programa que leia uma matriz M 7x12 de inteiros, calcule a soma dos elementos armazenados em cada coluna da matriz, e o produto dos elementos armazenados em cada linha, guardando cada um dos resultados nos vetores de resposta (nas respectivas posições). O conteúdo de cada um desses vetores deverá ser exibido na tela.

+ + + + + + +

* * * * * * * * * * * *

12) Faça um programa com uma sub-rotina (função) que receba 3 valores de entrada e retorne o maior valor entre estes três valores.

13) Faça um programa com uma sub-rotina (função) que calcule X elevado à Y = XY. Leia 2 valores de X e Y e exiba o resultado da chamada da sub-rotina na tela. Exemplo: 2 elevado à 3 é igual à 2*2*2 = 8.

14) Faça um programa que peça para ler 2 notas e 2 pesos (1 para cada nota) e depois mostre:

 A média aritmética simples;

 A média ponderada entre os dois valores (nota 1 com peso 1 e nota 2 com peso 2);

 O valor necessário para recuperar a pior nota e passar com média igual ou superior a 6.0 considerando o uso da média aritmética simples (notas com pesos iguais);

 O valor necessário para recuperar a pior nota e passar com média igual ou superior a 6.0, considerando o uso da média ponderada (nota 1 => peso 1, nota 2 => peso 2);

 Qual das duas médias (aritmética, ponderada ou tanto faz) é mais benéfica para o aluno, ou seja, qual das duas médias deixa este aluno com a melhor nota.

Faça este programa de forma modular, ou seja, usando uma sub-rotina (função) para o cálculo de cada tarefa descrita acima.

15) Faça uma sub-rotina “ Br_UpCase” que dado um caracter qualquer retorne o mesmo caracter sempre em maiúsculo, aceitando inclusive os caracteres acentuados da língua portuguesa (por exemplo: á, é, í, ó, ú, ç, ã, õ, â, ê, ô, à, ü). Faça um programa que leia uma palavra (string) e chame esta sub-rotina para cada um dos caracteres desta palavra, exibindo o resultado após a conversão para maiúsculo. Dicas:

Letra = Palavra[X]; { Copia o caracter índice X da string “Palavra” para a variável tipo char “Letra” } Palavra[5] = Letra; { Copia o conteúdo da variável tipo char “Letra” para o quinto caracter da string armazenada na variável “Palavra” }

Lembre-se: A string armazenada em uma variável pode ser menor que o tamanho reservado para ela. O final da string é representado pelo caracter ‘\0’ (fim de string).

16) Transforme todo o programa anterior de conversão de strings com caracteres em minúsculo para

strings com caracteres em maiúsculo, em uma função. Esta função recebe uma string de entrada e

devolve a string convertida para letras maiúsculas.

(3)

17) Faça novamente um programa para o cálculo do fatorial e verifique se este número é primo ou não. Mas desta vez crie uma rotina separada que realize o cálculo do fatorial de um número e uma outra rotina separada que indique se ele é ou não um número primo. Verifique se o resultado do fatorial é primo.

18) Escrever um programa que obtenha a data atual (ler dia, mês e ano) e exiba ela na tela no formato textual por extenso. A escrita da data por extenso deve ser realizada por um procedimento separado.

Exemplo: Data: 01/01/2000 => Imprimir: Sábado, 1 de janeiro de 2000.

19) Modificar o programa anterior para que seja lida a data de hoje, o nome de uma pessoa, e a data de seu nascimento.

 Nome: Fulano da Silva

 Data de nascimento: 01 01 2008

 Data de hoje: 16 09 2008

Em seguida o programa deve produzir a seguinte mensagem:

“O Fulano da Silva, nascido na Terça-Feira, 01 de janeiro de 2008 foi registrado neste cartório na data de hoje, Terça-Feira, 16 de setembro de 2008.”

20) Faça um programa que verifique uma determinada data fornecida pelo usuário, determinando se ela é válida ou não. Validar o dia (1 à 31, conforme o mês), mês (1 à 12) e ano (de 1 ao ano corrente),

verificando se esta data é uma data correta. Lembre-se de verificar se o ano é bissexto ao validar a data.

21) Usando o programa que você fez para a validação da data (exercício 9), transforme este programa em uma função que retorne um valor indicando se a data é válida ou não. Altere o programa anterior (exercício 8) de maneira que este valide a data de nascimento fornecida pelo usuário. Se a data for inválida, leia novamente a data de nascimento, valide e repita o processo tantas vezes quantas forem necessárias, até que o usuário forneça uma data correta. Faça o mesmo com a data do dia de hoje fornecida pelo usuário.

[Utilizando passagem de Parâmetros por Referência]

22) Faça um programa que leia 2 valores e chame uma sub-rotina que receba estas 2 variáveis e troque o seu conteúdo, ou seja, esta rotina é chamada passando duas variáveis A e B por exemplo, e após a execução da rotina A conterá o valor de B e B terá o valor de A.

23) Altere o programa anterior de forma a ler 4 valores em 4 variáveis: A, B, C, D. Use a rotina troca_valores implementada no programa anterior para trocar os valores de A com B, depois de C com D, mostre como ficaram os valores das variáveis, e para concluir destroque seus conteúdos mostrando novamente na tela como ficaram estas variáveis.

 Valor1: 10

 Valor2: 20

 Valor3: 30

 Valor4: 40

Trocando Valor1 com Valor2 e Valor3 com Valor4. Resultado:

Valor1: 20 - Valor2: 10 - Valor3: 40 - Valor4: 30

Trocando Valor1 com Valor2 e Valor3 com Valor4. Resultado:

Valor1: 10 - Valor2: 20 - Valor3: 30 - Valor4: 40

24) Faça um programa que leia dois valores e chame uma sub-rotina que receba estes 2 valores de entrada e retorne o maior valor na primeira variável e o segundo maior valor na segunda variável. Escreva o conteúdo das 2 variáveis na tela.

25) Faça um programa que leia três valores e chame uma sub-rotina que receba estes 3 valores de entrada e

retorne o maior valor entre estes três valores na primeira variável, o segundo maior valor na segunda

(4)

variável e o terceiro maior valor na terceira variável. Exibir os valores ordenados na tela (sugestão: use a sub-rotina troca_valores).

26) Faça um programa que possua uma rotina para ler 2 notas (chamar uma rotina dedicada a ler 2 notas válidas e que devolver os 2 números lidos), uma outra rotina que dadas estas 2 notas vai calcular a média simples e a média ponderada onde a segunda nota tem peso 2 => ( n1 + n2 *2 ) / 3, e uma última rotina que vai exibir na tela todos os dados que foram fornecidos e calculados: rotinas le_notas,

calc_media e exibe_dados.

27) Faça um programa que leia 5 números. Este programa deve ter um menu que permita ao usuário escolher qual opção de cálculo que ele deseja realizar: média aritmética simples, média ponderada (ler os pesos associados a cada nota que serão informados pelo usuário), desvio padrão, maior valor e menor valor. A leitura dos 5 valores também deve ser uma das opções do menu. Exemplo:

>> Estatística <<

1 – Entrar com os dados (5 valores)

2 – Calcular a média aritmética simples dos dados

3 – Calcular a média ponderada dos dados (fornecer 5 pesos) 4 – Calcular o desvio padrão dos dados

5 – Achar o maior valor 6 – Achar o menor valor 7 – Sair do programa (Fim) Entre com a sua opção: 1

Valor1: 5.3 Valor2: 8.2 Valor3: 7.3 Valor4: 3.7 Valor5: 7.1

Entre com a sua opção: 2 Média Aritmética Simples: 6.32

Entre com a sua opção: 7 FIM!

Obs: Desvio Padrão = Raiz quadrada da divisão do somatório do quadrado das diferenças entre valor e a média de todos os valores, dividido pelo número total de dados. Ver Wikipedia.org

28) Faça um jogo no qual o computador desafia dois usuários para ver quem tem mais memória. O jogo deve gerar um número de 0 à 9 e apresentar ao jogador 1 durante 5 segundos. Depois deve repetir este procedimento para o jogador 2. Em seguida, ele deve pedir ao jogador 1 para informar o número escolhido, e após pedir ao jogador 2 para fazer a mesma coisa. Na segunda rodada, o computador deve gerar mais um número entre 0 e 9, que será “concatenado” à direita do primeiro número. Então

repetiremos o procedimento de exibição e teste de memorização para os dois usuário. O programa deve continuar adicionando números (casas adicionadas ao final do número) até que um dos dois jogadores não consiga mais memorizar perfeitamente o número. Para concluir, o programa deve informar qual dos dois jogadores ganhou, quantas casas foram memorizadas ao total, e em que casa foi que o jogador perdedor errou (primeira casa errada começando da esquerda para a direita).

Dicas: procure desenvolver o programa em módulos; armazene a seqüência de números dentro de uma string. Seu programa ficou bem modular? Seria fácil de adaptá-lo para 3 ou mais jogadores?

TESTE DE MESA:

29) Procure prever o comportamento do programa abaixo e depois teste o programa na prática. Indique qual é o valor das variáveis A, B e X, Y que é escrito na tela no final da execução do programa.

A: ____ B: ____

X: ____ Y: ____

(5)

#include <stdio.h>

#include <conio.h>

double x, y;

void troca_ab(int a, int b) { int temp;

temp=a;

a=b;

b=temp;

}

int main() { int a,b;

a=10;

b=20;

troca_ab(b,a);

if ((a > 5) && (b < 15)) { x = a / 3 + b / 2;

y = a;

} else { x = a;

y = (a > b);

}

printf("A=%d - B=%d\n",a,b);

printf("X=%.2lf - Y=%.2lf\n",x,y);

getch();

}

30) Procure prever o comportamento do programa acima, considerando que a rotina troca_ab foi alterada conforme indicado abaixo. Depois teste o programa na prática. Indique qual é o valor das variáveis A, B e X, Y que é escrito na tela no final da execução do programa.

void troca_ab(int *a, int *b) {

int temp; A: ____ B: ____

temp=*a;

*a=*b; X: ____ Y: ____

*b=temp;

}

troca_ab(&a,&b);

...

Referências

Documentos relacionados

1- OBJETO: CONTRATAÇÃO DE EMPRESA ESPECIALIZADA PARA O FORNECIMENTO PARCELADO DE PRODUTOS ALIMENTÍCIOS E DE COPA-COZINHA, E MATERIAIS DE LIMPEZA E HIGIENIZAÇÃO,

ocorra uma variação negativa de 1% no preço das ações (IBOVESPA), considerando o último dia útil do mês de referência. % PL 0,00 * Trata-se do pior cenário de estresse para

3 15. Faça um programa que receba 10 números e mostre a soma dos números ímpares e a soma dos números pares. Faça um programa que leia a idade, altura e peso de um conjunto de

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

“Violações da saúde e dos direitos sexuais e reprodutivos das mulheres, tais como esterilizações forçadas, aborto forçado, gravidez forçada, criminalização do aborto,

Mesmo possuindo permeabilidade e porosidade sensivelmente diferentes entre as formações estudadas, os plugues 02 e 04 apresentaram as maiores eficiências de recuperação

Determinação da concentração micelar crítica do tensoativo L23, em diferentes teores de KCl, à temperatura de 25 ºC, variando a tensão superficial (mN/m) com a. concentração

descobre tal elemento por meio de uma busca linear, o algoritmo abaixo mantém o trecho não ordenado num monte, de forma que a seleção do maior elemento pode ser feita em tempo O(lg