Buscar

Exercícios Resolvidos 3 1 a 3 9 - Programação de Computadores II -UFOP

Prévia do material em texto

Exercícios Resolvidos 3.1 a 3.9 - Programação de Computadores II -UFOP
3.1 Faça um programa para ler uma quantidade N de números inteiros e armazená-los em um vetor. O programa deve trocar o menor elemento do vetor com o elemento da primeira posição, e imprimir o vetor resultante.
Exemplo de execução:
Entrada:
7
2 8 3 1 0 -7 19
Saída:
-7 8 3 1 0 2 19
Res: #include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main() {
 int N;
 cin >> N;
 int vetor[N];
 int menor, pos;
 for(int i=0; i<N; i++){
 cin>>vetor[i];
 if(i == 0){
 menor = vetor[i];
 pos = i;
 }
 if(vetor[i] < menor){
 menor = vetor[i];
 pos= i;
 }
 }
 int aux = vetor[0];
 vetor[0] = menor;
 vetor[pos] = aux;
 for(int i=0; i< N;i++){
 cout<<vetor[i]<<" "; } }
3.2 Faça um programa que lê dez números inteiros e os armazena em um vetor, e calcula e mostra dois vetores resultantes:
· o primeiro deve conter os números positivos;
· o segundo deve conter os números negativos.
Cada vetor resultante vai ter, no máximo, dez posições, que poderão não ser completamente utilizadas. Guarde em variáveis a quantidade de valores armazenados em cada vetor resultante.
Exemplo de execução:
Entrada:
10 1 5 -2 7 21 -6 18 -4 7
Saída:
Positivos: 10 1 5 7 21 18 7
Negativos: -2 -6 -4
Reso:
#include <iostream>
using namespace std;
int main()
{
 int positivos [10];
 int negativos [10];
 int tamanho_positivos, tamanho_negativos, i, entrada;
 tamanho_positivos = 0;
 tamanho_negativos = 0;
 for(i=0; i<10; i++){
 cin >> entrada;
 if(entrada < 0)
 negativos[tamanho_negativos ++] = entrada; 
 else
 positivos[tamanho_positivos ++] = entrada;
 }
 cout << "Positivos: ";
 for(i=0; i<tamanho_positivos; i++){
 cout << positivos[i] << " ";
 }
 cout << endl;
 cout << "Negativos: ";
 for(i=0; i<tamanho_negativos; i++){
 cout << negativos[i] << " ";
 }
 cout << endl;
 return 0;
}
3.3 Faça um programa cujas entradas são:
· o número de elementos de um vetor de números inteiros,
· seguido dos elementos do vetor,
· seguidos de um valor a ser procurado no vetor.
O programa deve retornar um número inteiro indicando o índice da posição do elemento, caso ele tenha sido encontrado, ou o número -1, caso não tenha sido encontrado no vetor.
Exemplo de execução:
Entrada:
7
4 8 6 1 0 -3 9
0
Saída:
Posição do elemento 0: 4
Exemplo de execução:
Entrada:
7
4 8 6 1 0 -3 9
10
Saída:
Posição do elemento 10: -1
Reso:
#include <iostream>
using namespace std;
int main() {
 
 int N, pos;
 cin >> N;
 int vetor[N];
 for(int i=0; i < N ;i++){
 int tem;
 cin >> tem;
 vetor[i] = tem;
 }
 cin >> pos;
 if(pos >= N){
 cout<<"Posição do elemento "<<pos<<": "<<-1;
 }else{
 cout<<"Posição do elemento "<<pos<<": "<<vetor[pos]; 
 }
}
3.4 Faça um programa para ler N valores inteiros e armazená-los em um vetor. O programa deve contar quantos valores pares ele possui e somar os valores ímpares, exibindo os resultados.
Exemplo de execução:
Entrada:
9
4 1 6 12 -2 9 7 -3 5
Saída:
Quantidade de pares: 4
Soma dos ímpares: 19
Reso:
#include <iostream>
#include <locale.h>
using namespace std;
int main()
{
 int n, i, qtd_pares, soma_impares;
 int *vet;
 qtd_pares = 0;
 soma_impares = 0;
 cin >> n;
 vet = (int*) malloc(n*sizeof(int));
 for(i=0; i<n; i++){
 cin >> vet[i];
 if(vet[i] % 2 == 0)
 qtd_pares ++;
 else
 soma_impares += vet[i];
 }
 cout << "Quantidade de pares: " << qtd_pares << endl;
 cout << "Soma dos ímpares: " << soma_impares << endl;
 free(vet);
 return 0;
}
3.5 Faça um programa que leia as dimensões de uma matriz de números inteiros, M e N, onde M é o número de linhas e N é o número de colunas. A seguir, leia os elementos da matriz, e calcule e exiba a soma dos elementos da coluna onde se encontra o maior elemento da matriz.
Exemplo de execução:
Entrada:
4 3
 3 8 1
 2 4 3
 1 12 -4
11 6 4
Saída:
Soma = 30
#include <iostream>
#include <locale.h>
using namespace std;
int main()
{
 int m, n, i, j, coluna, maior, soma;
 int **mat;
 cin >> m;
 cin >> n;
 mat = (int **)malloc(m * sizeof(int*));
 for(int i = 0; i < m; i++) 
 mat[i] = (int *)malloc(n * sizeof(int));
 
 coluna = 0;
 soma = 0;
 for(i=0; i<m; i++){
 for(j=0; j<n; j++){
 cin >> mat[i][j];
 if(i == 0 && j == 0)
 maior = mat[i][j];
 else if(maior < mat[i][j]){
 maior = mat[i][j];
 coluna = j;
 }
 }
 }
 for(i=0; i<m; i++) 
 soma += mat[i][coluna];
 cout << "Soma = " << soma;
 free(mat);
 return 0;
}
3.6 Faça um programa que leia as dimensões de uma matriz de inteiros M e N, onde M é o número de linhas e N é o número de colunas. A seguir, leia os elementos da matriz, conte e escreva quantos valores maiores que 10 ela possui.
Exemplo de execução:
Entrada:
5 3
 3 8 9
20 7 3
 0 15 -4
12 9 4
 7 13 2
Saída:
Maiores que 10: 4 elementos
Res:
#include <iostream>
using namespace std;
int main() {
 int linha, coluna;
 cin >>linha;
 cin >> coluna;
 int contador =0;
 for(int i=0; i< linha; i++){
 for(int j=0; j < coluna; j++){
 int tem;
 cin >> tem;
 if(tem > 10){
 contador ++;
 }
 }
 }
 cout<<"Maiores que 10: "<< contador<<" elementos";
}
3.7 aça um programa que leia a dimensão N de uma matriz (de números inteiros) quadrada. A seguir, leia os elementos da matriz, e verifique se essa matriz é diagonal.
Exemplo de execução:
Entrada:
4
3 0 0 0
0 2 0 0
0 0 7 0
0 0 0 1
Saída:
A matriz é diagonal.
Exemplo de execução:
Entrada:
3
3 0 0
9 8 4
0 0 7
Saída:
A matriz não é diagonal.
Reso:
#include <iostream>
using namespace std;
int main()
{
 int m, n, i, j, diagonal;
 int **mat;
 cin >> n;
 m = n;
 diagonal = 1;
 mat = (int **)malloc(m * sizeof(int*));
 for(i = 0; i < m; i++) 
 mat[i] = (int *)malloc(n * sizeof(int));
 for(i=0; i<m; i++){
 for(j=0; j<n; j++){
 cin >> mat[i][j];
 }
 }
 for(i=0; i<m; i++){
 for(j=0; j<n; j++){
 if(i != j && mat[i][j] != 0)
 diagonal = 0;
 }
 }
 if(diagonal) 
 cout << "A matriz é diagonal." << endl;
 else
 cout << "A matriz não é diagonal." << endl;
 free(mat);
 return 0;
}
3.8 Palíndrome é uma palavra que pode ser lida tanto da esquerda para a direita como da direita para a esquerda, resultando na mesma sequência de caracteres.
Faça um programa que lê uma palavra e verifica se a mesma é palíndrome ou não.
Exemplo de execução:
Entrada:
arara
Saída:
arara é palíndrome
Exemplo de execução:
Entrada:
abacaxi
Saída:
abacaxi não é palíndrome
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string palavra;
 int i, palindromo, tamanho;
 cin >> palavra;
 
 tamanho = palavra.size();
 palindromo = 1; 
 for(i=0; i<tamanho/2; i++)
 if(palavra[i] != palavra[tamanho-i-1])
 palindromo = 0;
 if(palindromo)
 cout << palavra << " é palíndrome" << endl;
 else
 cout << palavra << " não é palíndrome" << endl;
 return 0;
}
3.9 Escreva um programa que receba como entrada uma frase e uma letra, e calcule o percentual que indica a quantidade de ocorrências dessa letra com relação ao total de caracteres válidos (letras).
Não considere o espaço como um caractere válido.
Exiba a resposta com duas casas decimais.
Exemplo de execução:
Entrada:
O rato roeu a roupa do rei de roma
o
Saída:
Percentual: 19.23 %
Resol:
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string frase;
 char letra;
 unsigned int contador, total, i;
 float percentual;contador = 0;
 total = 0;
 getline(cin, frase);
 cin >> letra;
 for(i=0; i<frase.size(); i++){
 if(frase[i] == letra)
 contador ++;
 if(((int)frase[i] >= (int)'A' && (int)frase[i] <= (int)'Z') || ((int)frase[i] >= (int)'a' && (int)frase[i] <= (int)'z'))
 total ++;
 }
 if(total == 0)
 total ++;
 percentual = (float)contador/total*100.0;
 cout.precision(2);
 cout << "Percentual: " << fixed << percentual << " \%" << endl;
 
 return 0;
}

Continue navegando