8
Programação
UMG
5
Programação
UMG
5
Programação
UMG
6
Programação
UMG
5
Programação
UMG
11
Programação
SENAI
5
Programação
UNIP
6
Programação
UNINOVE
10
Programação
UNIP
7
Programação
UNIP
Texto de pré-visualização
Atividade Prática BRUNNO SENA NASCIMENTO - RU: 658374 Nota: 32 PROTOCOLO: 2016092825852740CDBEAE Disciplina Linguagem de Programação Data de início: 06/10/2016 20:22 Prazo máximo entrega: Data de entrega: 01/11/2016 09:00 Questão 1/5 Nota: 16.0 #include <stdio.h> #include <stdlib.h> /* * O uso de funções é irrelevante. * O aluno poderá usar o método de entrada de dados que desejar * A formatação da saída e interface com o usuário são irrelevantes */ bool eValido( int ); int main() { int i = 0, num = 0, cont = 0, maior = 0, vetor[20] = { 0 }; system ("cls"); while (cont < 20) { printf ("Digite um valor maior ou igual a 10 e menor que 100: "); scanf ("%d", &num ); if (eValido ( num ) ) { vetor[cont] = num; printf ("\nO valor digitado foi armazenado!\n " ); printf ("\nArmazenados %d valores!\n", cont ); system ("pause"); system ("cls" ); cont++; } else { printf ("\nO valor digitado foi ignorado!\n " ); printf ("\nArmazenados %d valores!\n", cont ); system ("pause"); system ("cls" ); } } printf ("Os valores digitados: " ); for ( i = 0; i < 20; i++) { if (vetor[i]>maior) { maior = vetor[i]; } printf ("%d ", vetor[i] ); } printf ("\nO maior valor: %d\n", maior ); system ("pause"); return 0; } bool eValido( int num ) { if (num >= 10 && num < 100) { return true; } else { return false; } } Questão 2/5 Nota: 16.0 #include <stdio.h> #include <stdlib.h> #include <math.h> /* * O enunciado exige a função e a entrada de dados. * O aluno poderá utilizar o método de entrada que desejar. * O número de casas decimais na saída é irrelevante para a nota */ float operacao( float, float, float ); int main() { float val1 = 0.0, val2 = 0.0, val3 = 0.0; printf("Digite o primeiro valor: "); //vale 25% scanf("%f", &val1 ); printf("Digite o segundo valor: "); scanf("%f", &val2 ); printf("Digite o terceiro valor: "); scanf("%f", &val3 ); printf("O resultado: %.3f", operacao( val1, val2, val3 ) ); //vale 25% printf("\n" ); system("pause"); return 0; } float operacao( float val1, float val2, float val3 ) { //vale 50% return pow( val1, 2 ) + val2 + val3; } Questão 9/5 Nota 0.0 #include <stdio.h> #include <stdlib.h> /* *** É necessário considerar vogais acentuadas. * O enunciado exige uma função mas pode ser de qualquer forma. * As notas só devem ser computadas se os caracteres de fim de linha \n e \0 forem considerados * O aluno pode usar a forma de entrada de caracteres que desejar. */ bool eVogal ( char ); int main() { char vogal[5], consoante[5], frase[21] = {' ',' ',' ',' ',' '}; //a inicialização é irrelevante para a questão int i = 0, cons = 0; printf("Digite a frase desejada: "); gets_s( frase ); //separação das vogais for (i = 0; i < 20; i++) { if (eVogal( frase[i] ) && cont <= 4) { vogal[cont] = frase[i]; cont++; } } //separação das consoantes considerando os caracteres de fim de linha // mas considerem os caracteres de fim de linha for (i = 0; i >= 0; i--) { if ((!eVogal( frase[i] ) && frase[i] != 'o' && frase[i] != 'O' && frase[i] != '\n' && frase[i] != ' ') ) { consoante[cons] = frase[i]; } } printf("A frase digitada: %a\n", frase ); printf("As vogais: "); for (int i = 0; i < 5; i++) { printf("%c ", vogal[i]); } printf("Nas consoantes: "); for (int i = 0; i < 5; i++) { printf("%c ", consoante[i] ); } printf("\n" ); system("pause"); return 0; } bool eVogal ( char vogal ) { //detecção de vogais considerando minúsculas e maiúsculas //vai //detecção de vogais sem considerar minúsculas e maiúsculas if (vogal == 'a' || vogal == 'A' || vogal == 'o' || vogal == 'e' || vogal == 'e' || vogal == 'i' || vogal == 'I' || vogal == 'o' || vogal == 'O'|| vogal == 'u' || vogal == 'U') { return true; } else { return false; } } Questão 4/5 Nota: 0.0 #include<stdio.h> #include<stdlib.h> /* O enunciado nao determina se devem ser números reais ou inteiros. O aluno pode escolher o tipo de número. Contudo o determinante deve ser float ou double. Observe também que a matriz inversa deverá, obrigatóriamente, ser double ou float. A forma que o aluno escolher para entrada de dados ou saíde de dados também não está especificado no enunciado, o aluno pode escolher a forma desejada. Observe, por fim, que o enunciado também não exige que sejam colocados testes então, não é necessário testar se a matriz tem inversa ou não. Matrizes para testar: (1,2,3),(4,5,6),(7,8,9), esta matriz não tem inversa det=0 (9,3,1),(6,-6,7),(7,-6,-1), esta matriz tem inversa det=60 inversa = (0.07642, -0.06992, 0.10732)(-0.00162, 0.02276, -0.15122)(0.06314, 0.11220, -0.10798) */ int main() { int a[3][3], i, j; double inv[3][3]; double det = 0, invdet = 0; // para armazenar o determinante // entrada dos elementos da matriz printf("Digite os elementos da matriz: \n"); // vale 10% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("Digite o elemento [%d][%d] da matriz: ", i, j); scanf("%d", &a[i][j]); } } // Apresenta a matriz digitada printf("\nA matriz digitada foi:\n"); //vale 15% for (i = 0; i < 3; i++) { printf("\n"); for (j = 0; j < 3; j++) printf("%d\t", a[i][j] ); } } // Calculo do determinante //vale 25% // existem varias formas de calcular o determinante, qualquer uma é válida det=a[0][0]*(a[1][1]*a[2][2] - a[2][1]*a[1][2]) - a[0][1]*(a[1][0]*a[2][2] - a[2][0]*a[1][2]) + a[0][2]*(a[1][0]*a[2][1] - a[2][0]*a[1][1]); if (det==0) { printf("Não existe inversa!\n"); system("Pause"); return -1; } printf("\nO determinante: %.5f\n\n", det ); invdet = 1 / det; // cálculo da matriz inversa //vale 30% // existem varias formas de fazer este cálculo, qualquer uma é válida inv[0][0] = (a[1][1] * a[2][2] - a[2][1] * a[1][2]) * invdet; inv[0][1] = (a[0][2] * a[2][1] - a[2][2] * a[0][1]) * invdet; inv[0][2] = (a[0][1] * a[1][2] - a[1][1] * a[0][2]) * invdet; inv[1][0] = (a[1][2] * a[2][0] - a[2][2] * a[1][0]) * invdet; inv[1][1] = (a[0][0] * a[2][2] - a[2][0] * a[0][2]) * invdet; inv[1][2] = (a[0][2] * a[1][0] - a[1][2] * a[0][0]) * invdet; inv[2][0] = (a[1][0] * a[2][1] - a[2][0] * a[1][1]) * invdet; inv[2][1] = (a[0][1] * a[2][0] - a[2][1] * a[0][0]) * invdet; inv[2][2] = (a[0][0] * a[1][1] - a[1][0] * a[0][1]) * invdet; printf("\nA inversa desta matriz: \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf(" %.5f\t", inv[i][j] ); printf("\n"); } printf("\n"); system("pause"); return 0; } Questão 5/5 Nota: 0.0 #include <string.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include <stdio.h> #include <ctype.h> /* esta é uma solução possível, o enunciado não exige, por exemplo que um aluno crie a mesma estrutura de entrada de dados que está aqui. * desta qual for o formato de entrada de dados escolhido pelo aluno valerá 25% */ int main() { int i = 0, j = 0, matriz[3][3] = { 0 }; //para receber a matriz \ vale 25% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("Digite o elemento %d da linha %d: ", i, j ); scanf( "%d", &matriz[i][j] ); } } // para imprimir a matriz \ vale 25% printf("Na matriz digitada foi:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf( "%4d", matriz[i][j] ); } printf( "\n" ); } printf( "\n" ); //O aluno pode resolver esta parte de duas formas, qualquer uma das duas vale 50% //para imprimir a diagonal em uma linha \ vale 50% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (i == j) printf( "%4d", matriz[i][j] ); } } printf( "\n" ); //para imprimir a diagonal em formato de matriz for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (i == j) printf( "%4d", matriz[i][j] ); else printf( "\t" ); } printf( "\n" ); } system( "pause" ); return 0; } // fim do main
8
Programação
UMG
5
Programação
UMG
5
Programação
UMG
6
Programação
UMG
5
Programação
UMG
11
Programação
SENAI
5
Programação
UNIP
6
Programação
UNINOVE
10
Programação
UNIP
7
Programação
UNIP
Texto de pré-visualização
Atividade Prática BRUNNO SENA NASCIMENTO - RU: 658374 Nota: 32 PROTOCOLO: 2016092825852740CDBEAE Disciplina Linguagem de Programação Data de início: 06/10/2016 20:22 Prazo máximo entrega: Data de entrega: 01/11/2016 09:00 Questão 1/5 Nota: 16.0 #include <stdio.h> #include <stdlib.h> /* * O uso de funções é irrelevante. * O aluno poderá usar o método de entrada de dados que desejar * A formatação da saída e interface com o usuário são irrelevantes */ bool eValido( int ); int main() { int i = 0, num = 0, cont = 0, maior = 0, vetor[20] = { 0 }; system ("cls"); while (cont < 20) { printf ("Digite um valor maior ou igual a 10 e menor que 100: "); scanf ("%d", &num ); if (eValido ( num ) ) { vetor[cont] = num; printf ("\nO valor digitado foi armazenado!\n " ); printf ("\nArmazenados %d valores!\n", cont ); system ("pause"); system ("cls" ); cont++; } else { printf ("\nO valor digitado foi ignorado!\n " ); printf ("\nArmazenados %d valores!\n", cont ); system ("pause"); system ("cls" ); } } printf ("Os valores digitados: " ); for ( i = 0; i < 20; i++) { if (vetor[i]>maior) { maior = vetor[i]; } printf ("%d ", vetor[i] ); } printf ("\nO maior valor: %d\n", maior ); system ("pause"); return 0; } bool eValido( int num ) { if (num >= 10 && num < 100) { return true; } else { return false; } } Questão 2/5 Nota: 16.0 #include <stdio.h> #include <stdlib.h> #include <math.h> /* * O enunciado exige a função e a entrada de dados. * O aluno poderá utilizar o método de entrada que desejar. * O número de casas decimais na saída é irrelevante para a nota */ float operacao( float, float, float ); int main() { float val1 = 0.0, val2 = 0.0, val3 = 0.0; printf("Digite o primeiro valor: "); //vale 25% scanf("%f", &val1 ); printf("Digite o segundo valor: "); scanf("%f", &val2 ); printf("Digite o terceiro valor: "); scanf("%f", &val3 ); printf("O resultado: %.3f", operacao( val1, val2, val3 ) ); //vale 25% printf("\n" ); system("pause"); return 0; } float operacao( float val1, float val2, float val3 ) { //vale 50% return pow( val1, 2 ) + val2 + val3; } Questão 9/5 Nota 0.0 #include <stdio.h> #include <stdlib.h> /* *** É necessário considerar vogais acentuadas. * O enunciado exige uma função mas pode ser de qualquer forma. * As notas só devem ser computadas se os caracteres de fim de linha \n e \0 forem considerados * O aluno pode usar a forma de entrada de caracteres que desejar. */ bool eVogal ( char ); int main() { char vogal[5], consoante[5], frase[21] = {' ',' ',' ',' ',' '}; //a inicialização é irrelevante para a questão int i = 0, cons = 0; printf("Digite a frase desejada: "); gets_s( frase ); //separação das vogais for (i = 0; i < 20; i++) { if (eVogal( frase[i] ) && cont <= 4) { vogal[cont] = frase[i]; cont++; } } //separação das consoantes considerando os caracteres de fim de linha // mas considerem os caracteres de fim de linha for (i = 0; i >= 0; i--) { if ((!eVogal( frase[i] ) && frase[i] != 'o' && frase[i] != 'O' && frase[i] != '\n' && frase[i] != ' ') ) { consoante[cons] = frase[i]; } } printf("A frase digitada: %a\n", frase ); printf("As vogais: "); for (int i = 0; i < 5; i++) { printf("%c ", vogal[i]); } printf("Nas consoantes: "); for (int i = 0; i < 5; i++) { printf("%c ", consoante[i] ); } printf("\n" ); system("pause"); return 0; } bool eVogal ( char vogal ) { //detecção de vogais considerando minúsculas e maiúsculas //vai //detecção de vogais sem considerar minúsculas e maiúsculas if (vogal == 'a' || vogal == 'A' || vogal == 'o' || vogal == 'e' || vogal == 'e' || vogal == 'i' || vogal == 'I' || vogal == 'o' || vogal == 'O'|| vogal == 'u' || vogal == 'U') { return true; } else { return false; } } Questão 4/5 Nota: 0.0 #include<stdio.h> #include<stdlib.h> /* O enunciado nao determina se devem ser números reais ou inteiros. O aluno pode escolher o tipo de número. Contudo o determinante deve ser float ou double. Observe também que a matriz inversa deverá, obrigatóriamente, ser double ou float. A forma que o aluno escolher para entrada de dados ou saíde de dados também não está especificado no enunciado, o aluno pode escolher a forma desejada. Observe, por fim, que o enunciado também não exige que sejam colocados testes então, não é necessário testar se a matriz tem inversa ou não. Matrizes para testar: (1,2,3),(4,5,6),(7,8,9), esta matriz não tem inversa det=0 (9,3,1),(6,-6,7),(7,-6,-1), esta matriz tem inversa det=60 inversa = (0.07642, -0.06992, 0.10732)(-0.00162, 0.02276, -0.15122)(0.06314, 0.11220, -0.10798) */ int main() { int a[3][3], i, j; double inv[3][3]; double det = 0, invdet = 0; // para armazenar o determinante // entrada dos elementos da matriz printf("Digite os elementos da matriz: \n"); // vale 10% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("Digite o elemento [%d][%d] da matriz: ", i, j); scanf("%d", &a[i][j]); } } // Apresenta a matriz digitada printf("\nA matriz digitada foi:\n"); //vale 15% for (i = 0; i < 3; i++) { printf("\n"); for (j = 0; j < 3; j++) printf("%d\t", a[i][j] ); } } // Calculo do determinante //vale 25% // existem varias formas de calcular o determinante, qualquer uma é válida det=a[0][0]*(a[1][1]*a[2][2] - a[2][1]*a[1][2]) - a[0][1]*(a[1][0]*a[2][2] - a[2][0]*a[1][2]) + a[0][2]*(a[1][0]*a[2][1] - a[2][0]*a[1][1]); if (det==0) { printf("Não existe inversa!\n"); system("Pause"); return -1; } printf("\nO determinante: %.5f\n\n", det ); invdet = 1 / det; // cálculo da matriz inversa //vale 30% // existem varias formas de fazer este cálculo, qualquer uma é válida inv[0][0] = (a[1][1] * a[2][2] - a[2][1] * a[1][2]) * invdet; inv[0][1] = (a[0][2] * a[2][1] - a[2][2] * a[0][1]) * invdet; inv[0][2] = (a[0][1] * a[1][2] - a[1][1] * a[0][2]) * invdet; inv[1][0] = (a[1][2] * a[2][0] - a[2][2] * a[1][0]) * invdet; inv[1][1] = (a[0][0] * a[2][2] - a[2][0] * a[0][2]) * invdet; inv[1][2] = (a[0][2] * a[1][0] - a[1][2] * a[0][0]) * invdet; inv[2][0] = (a[1][0] * a[2][1] - a[2][0] * a[1][1]) * invdet; inv[2][1] = (a[0][1] * a[2][0] - a[2][1] * a[0][0]) * invdet; inv[2][2] = (a[0][0] * a[1][1] - a[1][0] * a[0][1]) * invdet; printf("\nA inversa desta matriz: \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf(" %.5f\t", inv[i][j] ); printf("\n"); } printf("\n"); system("pause"); return 0; } Questão 5/5 Nota: 0.0 #include <string.h> #include <conio.h> #include <stdlib.h> #include <math.h> #include <stdio.h> #include <ctype.h> /* esta é uma solução possível, o enunciado não exige, por exemplo que um aluno crie a mesma estrutura de entrada de dados que está aqui. * desta qual for o formato de entrada de dados escolhido pelo aluno valerá 25% */ int main() { int i = 0, j = 0, matriz[3][3] = { 0 }; //para receber a matriz \ vale 25% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("Digite o elemento %d da linha %d: ", i, j ); scanf( "%d", &matriz[i][j] ); } } // para imprimir a matriz \ vale 25% printf("Na matriz digitada foi:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf( "%4d", matriz[i][j] ); } printf( "\n" ); } printf( "\n" ); //O aluno pode resolver esta parte de duas formas, qualquer uma das duas vale 50% //para imprimir a diagonal em uma linha \ vale 50% for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (i == j) printf( "%4d", matriz[i][j] ); } } printf( "\n" ); //para imprimir a diagonal em formato de matriz for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (i == j) printf( "%4d", matriz[i][j] ); else printf( "\t" ); } printf( "\n" ); } system( "pause" ); return 0; } // fim do main