Buscar

Relatório de Linguagem de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER 
ESCOLA SUPERIOR POLITÉCNICA 
BACHARELADO EM ENGENHARIA ELÉTRICA 
DISCIPLINA DE LINGUAGEM DE PROGRAMAÇÃO 
FUNDAMENTOS DA ENGENHARIA 
 
 
 
 
 
 
 
RELATÓRIO DA ATIVIDADE PRÁTICA 
DE LINGUAGEM DE PROGRAMAÇÃO 
 
 
 
 
 
 
 
ALUNO: XXXXXXXXXXXXXXXXXXXXXX 
PROFESSOR: VINICIUS POZZOBON BORIN 
 
 
 
 
 
 
 
 
 
CURITIBA - PR 
2018 
 
 
 
 
 
SUMÁRIO 
 
 
RESUMO ................................................................................................................................................................ I 
1 INTRODUCAO ............................................................................................................................................ 1 
1.1 OBJETIVOS ............................................................................................................................................. 1 
2 METODOLOGIA ........................................................................................................................................ 1 
3 RESULTADOS E DISCUSSÃO ................................................................................................................. 1 
3.1 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++, O ALUNO DEVERÁ ESCREVER UM PROGRAMA QUE 
RECEBA UMA MATRIZ 3X3 DE NÚMEROS INTEIROS E IMPRIMA, NA TELA DO CONSOLE, TANTO A MATRIZ 
DIGITADA QUANTO A DIAGONAL PRINCIPAL DA MESMA. ...................................................................................... 2 
3.2 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE PREENCHE UM VETOR DE 
INTEIROS COM 20 POSIÇÕES DE NÚMEROS MAIORES OU IGUAIS A 10 E MENORES QUE 100, E IMPRIMA O MAIOR 
NÚMERO ARMAZENADO NESTE VETOR. OBSERVE QUE, SEMPRE QUE O USUÁRIO DIGITAR UM NÚMERO FORA DO 
INTERVALO PERMITIDO O PROGRAMA DEVERÁ SOLICITAR OUTRO NÚMERO ATÉ QUE O VETOR ESTEJA 
PREENCHIDO. OBSERVE TAMBÉM QUE O SEU PROGRAMA DEVERÁ IMPRIMIR, ALÉM DO MAIOR NÚMERO 
ARMAZENADO, O VETOR CONTENDO OS NÚMEROS DIGITADOS. ........................................................................... 4 
3.3 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
ARMAZENE EM UM VETOR DE ATÉ 5 POSIÇÕES AS INFORMAÇÕES DE NOME, IDADE E SEXO. 
SABENDO QUE NOME É UMA STRING DE ATÉ 50 CARACTERES, IDADE É UM INTEIRO E SEXO É 
UM CARACTERE E QUE ESTES DADOS DEVEM SER ARMAZENADOS EM UMA STRUCT. .............. 7 
3.4 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
RECEBE O NOME, COM ATÉ 50 CARACTERES DE UM ALUNO E SUA NOTA E GRAVE OS DADOS 
RELATIVOS A ATÉ 50 ALUNOS EM UM ARQUIVO NO SEU DISCO. OBSERVE QUE A NOTA 
DEVERÁ ESTAR ENTRE ZERO E DEZ E NÚMEROS REAIS SÃO PERMITIDOS. .................................... 9 
3.5 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ O ALUNO DEVERÁ ESCREVER UM 
PROGRAMA QUE RECEBA UMA MATRIZ 3X3 E IMPRIMA TANTO A MATRIZ DIGITADA QUANTO 
A SUA INVERSA EM UMA JANELA DE CONSOLE. .................................................................................. 11 
3.6 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ FAÇA UM PROGRAMA QUE 
RECEBA DUAS MATRIZES 3X3 E IMPRIMA, AS DUAS MATRIZES DIGITADAS E A DIAGONAL 
PRINCIPAL DA MATRIZ RESULTANTE DO PRODUTO ENTRE AS DUAS MATRIZES DIGITADAS. 14 
3.7 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
RECEBE UMA STRING DE ATÉ 20 CARACTERES E IMPRIME, A STRING DIGITADA, UM VETOR 
CONTENDO AS CINCO PRIMEIRAS VOGAIS DA STRING DIGITADA E O VETOR CONTENDO AS 
CINCO ULTIMAS CONSOANTES DA STRING DIGITADA. OBSERVE QUE PARA RESOLVER ESTE 
PROBLEMA, O SEU PROGRAMA DEVERÁ TER UMA FUNÇÃO PARA IDENTIFICAR SE UM 
CARACTERE É UMA VOGAL OU NÃO. ...................................................................................................... 17 
3.8 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
RECEBA UMA STRING DE ATÉ 20 CARACTERES CONTE OS NÚMEROS DE VOGAIS EXISTENTES 
NESTA STRING E IMPRIMA O NÚMERO TOTAL DE CARACTERES DA STRING, O NÚMERO DE 
VOGAIS NESTA STRING E O PERCENTUAL DE VOGAIS EM RELAÇÃO AO COMPRIMENTO DA 
STRING. ........................................................................................................................................................... 20 
3.9 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
CONTENHA UMA FUNÇÃO QUE RETORNE O SEGUINTE: A FUNÇÃO RECEBE TRÊS VALORES 
FLOAT E RETORNA O QUADRADO DO 1º MAIS A SOMA DOS OUTROS DOIS. OBSERVE QUE ESTA 
FUNÇÃO DEVERÁ RETORNAR UM TIPO FLOAT. O SEU PROGRAMA DEVERÁ TER ESTA 
FUNÇÃO, PERMITIR A DIGITAÇÃO DOS NÚMEROS E IMPRIMIR TANTO OS NÚMEROS 
DIGITADOS QUANTO O RESULTADO DA FUNÇÃO. .............................................................................. 23 
3.10 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PROGRAMA QUE 
RECEBE UMA STRING DE ATÉ 50 CARACTERES, UM CARACTERE ESPECÍFICO E DEVOLVE O 
NÚMERO DE OCORRÊNCIAS DESTE CARACTERE NESTA STRING DIGITADA. NÃO ESQUEÇA 
QUE O PROGRAMA DEVERÁ IMPRIMIR A STRING, O CARACTERE E O NÚMERO DE 
OCORRÊNCIAS. ............................................................................................................................................. 25 
4 CONCLUSÕES .......................................................................................................................................... 27 
5 AGRADECIMENTOS .............................................................................................................................. 28 
6 REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................................... 29 
 
 
 
 
i 
 
RESUMO 
 
Este documento apresenta resolução da atividade prática da disciplina de linguagem de 
programação. 
 
Palavras-chave: Linguagem C/C++, Programação, Estrutura. 
 
 
 
1 
 
1 INTRODUCAO 
Apresentamos as resoluções dos problemas solicitados, demonstrando o aprendizado da 
disciplina da linguagem de programação. 
1.1 OBJETIVOS 
O objetivo destas resoluções de problemas apresentados é demonstrar o aprendizado e 
o domínio da teoria apresentada no decorrer do curso. 
 
2 METODOLOGIA 
As resoluções dos problemas seguindo as regras da linguagem de programação C/C++. 
3 RESULTADOS E DISCUSSÃO 
Abaixo as resoluções das questões propostas, e os respectivos resultados. 
 
 
 
2 
 
3.1 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++, O ALUNO DE-
VERÁ ESCREVER UM PROGRAMA QUE RECEBA UMA MATRIZ 3X3 DE 
NÚMEROS INTEIROS E IMPRIMA, NA TELA DO CONSOLE, TANTO A MA-
TRIZ DIGITADA QUANTO A DIAGONAL PRINCIPAL DA MESMA. 
Solução: 
 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <math.h> 
#include <conio.h> 
int main() 
{ 
 int i=0,j=0,matriz[3][3]={0}; 
 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]); // no Dev 
 scanf_s(“%d”, &matriz[i][j]); // no Viasual Studio 2017 
 } 
 } 
 printf(“\n\nA matriz digitada foi: \n\n”); 
 for(i=0;i<3;i++) 
 { 
 for(j=0;j<3;j++) 
 { 
 printf(“%d\t”,matriz[i][j]); 
 } 
 printf(“\n”); 
 } 
 
 
3 
 
 printf(“\n\n”); 
 for(i=0;i<3;i++) 
 { 
 for(j=0;j<3;j++) 
 { 
 if(i==j) 
 printf(“%d\t”,matriz[i][j]); 
 else 
 printf(“\t”); 
 } 
 printf(“\n\n”); 
 } 
 system(“PAUSE”); 
 return 0; 
} 
 
Teste: 
 
 
Figura 1 - Tela de teste do programa. 
 
 
 
4 
 
3.2 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE PREENCHE UM VETOR DE INTEIROS COM 20 POSIÇÕES DE 
NÚMEROS MAIORES OU IGUAIS A 10 E MENORES QUE 100, E IMPRIMA O 
MAIOR NÚMERO ARMAZENADONESTE VETOR. OBSERVE QUE, SEMPRE 
QUE O USUÁRIO DIGITAR UM NÚMERO FORA DO INTERVALO PERMI-
TIDO O PROGRAMA DEVERÁ SOLICITAR OUTRO NÚMERO ATÉ QUE O 
VETOR ESTEJA PREENCHIDO. OBSERVE TAMBÉM QUE O SEU PRO-
GRAMA DEVERÁ IMPRIMIR, ALÉM DO MAIOR NÚMERO ARMAZENADO, 
O VETOR CONTENDO OS NÚMEROS DIGITADOS. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
bool elValido(int); 
 
int main() 
{ 
 int i=0,num=0,cont=0,maior=0,vetor[20]={0}; 
 system(“cls”); 
 while(cont<20) 
 { 
 printf(“\nDigite um valor maior ou igual a 10 e menor que 100: “); 
 scanf_s(“%d”,&num); // testado rodando no Visual Studio 2017 
 //scanf(“%d”,&num); // testado rodando no Dev 
 if(elValido(num)) 
 { 
 vetor[cont]=num; 
cont++; 
printf(“\nO valor digitado foi armazenado!\n”); 
printf(“\nArmazenados %d valores!\n”, cont); 
system(“pause”); 
 
 
5 
 
system(“cls”); 
 } 
 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 elValido(int num) 
{ 
 if(num>=10 && num<100) 
 { 
 return true; 
 } 
 else 
 { 
 return false; 
 } 
} 
 
 
6 
 
Teste: 
 
 
Figura 2 - Tela do programa. 
 
 
 
7 
 
3.3 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE ARMAZENE EM UM VETOR DE ATÉ 5 POSIÇÕES AS INFOR-
MAÇÕES DE NOME, IDADE E SEXO. SABENDO QUE NOME É UMA STRING 
DE ATÉ 50 CARACTERES, IDADE É UM INTEIRO E SEXO É UM CARAC-
TERE E QUE ESTES DADOS DEVEM SER ARMAZENADOS EM UMA 
STRUCT. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
struct informacoes //dados 
{ 
 char nome[51]; 
 int idade; 
char sexo; 
}; 
struct informacoes alunos[5]; 
int main() 
{ 
 int i = 0; 
 for (i = 0; i < 5; i++) 
 { 
 printf(“\nDigite os dados do item %d: \n”, i); 
 printf(“Digite o nome: “); 
 gets_s(alunos[i].nome); 
 printf(“Digite a idade: “); 
 scanf_s(" %d", &alunos[i].idade, sizeof(alunos[i].idade)); 
 printf(“Digite o sexo: “); 
 scanf_s(“ %c”, &alunos[i].sexo); 
 getchar(); 
 } 
 
 
8 
 
 system(“cls”); 
 printf(“Dados digitados:\n”); 
 for (i = 0; i < 5; i++) 
 { 
 printf (“Para o aluno %d: \n”,i); 
 printf(“Nome: %s\n”,alunos[i].nome); 
 printf(“Idade: %d\n”,alunos[i].idade); 
 printf(“Sexo: %c\n\n”,alunos[i].sexo); 
 } 
 system(“pause”); 
return 0; 
} 
 
Teste: 
 
 
Figura 3 - Tela do programa em teste. 
 
 
 
9 
 
3.4 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE RECEBE O NOME, COM ATÉ 50 CARACTERES DE UM 
ALUNO E SUA NOTA E GRAVE OS DADOS RELATIVOS A ATÉ 50 ALUNOS 
EM UM ARQUIVO NO SEU DISCO. OBSERVE QUE A NOTA DEVERÁ ESTAR 
ENTRE ZERO E DEZ E NÚMEROS REAIS SÃO PERMITIDOS. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
struct turma 
{ 
 char nome[51]; 
 float nota; 
}; 
 
int main() 
{ 
 int i = 0, num = 50; 
 struct turma dados[50]; 
 FILE *arquivo; 
 errno_t err; 
 
 for (i = 0; i < num; i++) 
 { 
 printf("\nDigite o nome do aluno de indice %d: ", i); 
 gets_s(dados[i].nome); 
 printf("\nDigite a nota do aluno de indice %d: ", i); 
 scanf_s(" %f", &dados[i].nota); 
 getchar(); 
 system("cls"); 
 } 
 err = fopen_s(&arquivo, "dados.txt", "w+"); 
 if (err == 0) 
 { 
 printf("\nO arquivo'dados.txt' foi aberto\n"); 
 for (i = 0; i < num; i++) 
 { 
 fprintf(arquivo, "%s;%.2f\n", dados[i].nome, dados[i].nota); 
 
 } 
 } 
 else 
 { 
 printf("\nProblemas ao abrir o arquivo 'dados.txt'\n"); 
 } 
 if (arquivo) 
 { 
 err = fclose(arquivo); 
 if (err == 0) 
 { 
 printf("\nO arquivo 'dados.txt' foi fechado\n"); 
 
 
 
10 
 
 } 
 else 
 { 
 printf("\nProblemas ao fechar o arquivo 'dados.txt'\n"); 
 } 
 } 
 printf("\n"); 
 system("pause"); 
 return 0; 
} 
 
Teste: 
 
 
Figura 4 - Tela do programa em teste. 
 
 
 
11 
 
3.5 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ O ALUNO DE-
VERÁ ESCREVER UM PROGRAMA QUE RECEBA UMA MATRIZ 3X3 E IM-
PRIMA TANTO A MATRIZ DIGITADA QUANTO A SUA INVERSA EM UMA 
JANELA DE CONSOLE. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
 int i, j, k, l, m, n; 
 float det; 
 int m1[3][3], m2[3][3], aux[2][2]; 
 printf(“Informa a matriz 3x3:\n”); 
 for (i=0;i<3;i++) 
 { 
 for(j=0;j<3;j++) 
 { 
 printf(“linha %d-coluna%d: “,i+1,j+1); 
 scanf_s(“%d”, &m1[i][j]); 
 } 
 } 
 printf(“\nMatriz informada: \n”); 
 for (i=0;i<3;i++) 
 { 
 for (j=0;j<3;j++) 
 { 
 printf(“%d”,m1[i][j]); 
 } 
 printf(“\n”); 
 } 
 //calcula a matriz inversa usando matriz adjunta 
 
 
12 
 
 // Passo 1: Cálculo do determinante por Regra de Sarrus 
 det=(m1[0][0]*m1[1][1]*m1[2][2]+m1[0][1]*m1[1][2]*m1[2][0]+m1[0][2]*m1[1][0]
*m1[2][1]); 
 det=det-
(m1[0][2]*m1[1][1]*m1[2][0]+m1[0][0]*m1[1][2]+m1[2][1]+m1[0][1]*m1[1][0]*m1[2][2]); 
 if (det==0) 
 { 
 printf(“\nO determinante desta matriz e zero, então a matriz não pode ser inver-
tida\n”); 
 } 
 else 
 { 
 // Passo 2: matriz de cofatores 
 for (i=0;i<3;i++) 
 { 
 for (j=0;j<3;j++) 
 { 
 m=0; 
 for (k=0;k<3;k++) 
 { 
 n=0; 
 for (l=0;l<3;l++) 
 { 
 if ((k!=i)&&(l!=j)) 
 { 
 aux[m][n]=m1[k][l]; 
 n++; 
 } 
 } 
 if (k!=i) 
 m++; 
 } 
 m2[i][j]=((aux[0][0]*aux[1][1])-(aux[1][0]*aux[0][1])); 
 if ((i+1+j+1)%2 != 0) 
 
 
13 
 
 m2[i][j] = -1*m2[i][j]; 
 } 
 } 
 printf(“\nMatriz Inversa:\n”); 
 for (i=0;i<3;i++) 
 { 
 for (j=0;j<3;j++) 
 { 
 printf(“%.2f “,(1/det)*m2[i][j]); 
 } 
 printf(“\n”); 
 } 
 } 
 system(“pause”); 
 return 0; 
} 
 
Teste: 
 
 
Figura 5 - Tela do teste do programa. 
 
 
 
14 
 
3.6 UTILIZANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ FAÇA UM PRO-
GRAMA QUE RECEBA DUAS MATRIZES 3X3 E IMPRIMA, AS DUAS MATRI-
ZES DIGITADAS E A DIAGONAL PRINCIPAL DA MATRIZ RESULTANTE 
DO PRODUTO ENTRE AS DUAS MATRIZES DIGITADAS. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int main() 
{ 
 int a[3][3] = { 0 }, b[3][3] = { 0 }, mult[3][3] = { 0 }; 
 int i, j, k; 
 // limpa tela 
 system("cls"); 
 // digitação primeira matriz 
 printf("Digite os elementos da primeira matriz\n"); 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 { 
 printf("\nDigite o elemento a[%d][%d]: ", i, j); 
 scanf_s("%d", &a[i][j]); 
 } 
 } 
 // digitação da segunda matriz 
 printf("Digite os elementos da segunda matriz: \n"); 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 { 
 printf("\nDigite o elemento b[%d][%d]: ", i, j); 
 scanf_s("%d", &b[i][j]); 
 } 
 } 
 // Impressão da primeira matriz 
 printf("\n\nA primeira matriz digitada foi: \n"); 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 printf("%d\t", a[i][j]); 
 printf("\n"); 
 } 
 // Impressão da segunda matriz 
 printf("\n\nA segunda matriz digitada foi: \n"); 
 
 
15 
 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 printf("%d\t", b[i][j]); 
 printf("\n"); 
 } 
 // Calculo do produtoentre as matrizes 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 { 
 mult[i][j] = 0; 
 for (k = 0; k < 3; k++) 
 mult[i][j] = mult[i][j] + a[i][k] * b[k][j]; 
 } 
 } 
 printf("\n\nO produto entre as duas matrizes: \n"); 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 printf("%d\t", mult[i][j]); 
 printf("\n"); 
 } 
 // Imprimir a diagonal do produto em formato de linha 
 printf("\nA diagonal do produto\n"); 
 for (i=0; i<3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 { 
 if (i == j) 
 printf("%d\t", mult[i][j]); 
 } 
 } 
 printf("\n"); 
 printf("\n\n"); 
 // Imprimir a diagonal em formato de matriz 
 for (i = 0; i < 3; i++) 
 { 
 for (j = 0; j < 3; j++) 
 { 
 if (i == j) 
 printf("%d\t", mult[i][j]); 
 else 
 printf("\t"); 
 } 
 printf("\n"); 
 } 
 printf("\n"); 
 system("pause"); 
 return 0; 
 
 
16 
 
} 
 
Teste: 
 
 
Figura 6 - Tela do programa sendo testada. 
 
 
 
17 
 
3.7 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE RECEBE UMA STRING DE ATÉ 20 CARACTERES E IMPRIME, 
A STRING DIGITADA, UM VETOR CONTENDO AS CINCO PRIMEIRAS VO-
GAIS DA STRING DIGITADA E O VETOR CONTENDO AS CINCO ULTIMAS 
CONSOANTES DA STRING DIGITADA. OBSERVE QUE PARA RESOLVER 
ESTE PROBLEMA, O SEU PROGRAMA DEVERÁ TER UMA FUNÇÃO PARA 
IDENTIFICAR SE UM CARACTERE É UMA VOGAL OU NÃO. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
bool elVogal(char); 
 
int main() 
{ 
 char vogal[5], consoante[5], frase[21] = {‘ ‘}; 
 int i=0, cont =0; 
 printf(“Digite a frase desejada: ”); 
 gets_s(frase); 
 // aqui separa as vogais 
 for (i=0; i<20; i++) 
 { 
 if (elVogal(frase[i]) && cont<=4) 
 { 
 vogal[cont] = frase[i]; 
 cont++; 
 } 
 } 
 cont = 0; 
 for (i=20; i>=0; i--) 
 { 
 
 
18 
 
 if ((!elVogal(frase[i]) && frase[i] != ‘\O’ && frase[i] != ‘\n’ && frase[i] != ‘ ‘) 
&& cont <= 4) 
 { 
 consoante[cont] = frase[i]; 
 cont++; 
 } 
 } 
 printf(“A frase digitada: %s\n”, frase); 
 printf(“As vogais: “); 
 for (size_t i = 0; i < 5; i++) 
 { 
 printf(“%c ”, vogal[i]); 
 } 
 printf(“\nAs consoantes: “); 
 for (size_t i = 0; i < 5; i++) 
 { 
 printf(“%c ”, consoante[i]); 
 } 
 printf(“\n”); 
 system(“pause”); 
 return 0; 
} 
// fim do main 
 
bool elVogal(char vogal) 
{ 
 // detecção de vogais considerando maiúsculas e minúsculas 
 // detecção de vogais sem considerar maiúsculas e minisculas 
 if (vogal == ‘a’ || vogal == ‘A’ || vogal == ‘e’ || vogal == ‘E’ || vogal == ‘i’ || vogal == 
‘I’ || vogal == ‘o’ || vogal == ‘O’ || vogal == ‘u’ || vogal == ‘U’) 
 { 
 return true; 
 } 
 else 
 
 
19 
 
 { 
 return false; 
 } 
} 
 
Teste: 
 
 
Figura 7 - Tela do teste do programa. 
 
 
 
20 
 
3.8 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE RECEBA UMA STRING DE ATÉ 20 CARACTERES CONTE OS 
NÚMEROS DE VOGAIS EXISTENTES NESTA STRING E IMPRIMA O NÚ-
MERO TOTAL DE CARACTERES DA STRING, O NÚMERO DE VOGAIS 
NESTA STRING E O PERCENTUAL DE VOGAIS EM RELAÇÃO AO COMPRI-
MENTO DA STRING. 
Solução: 
 
# include <stdio.h> 
# include <stdlib.h> 
# include <string.h> 
 
bool elVogal(char); 
double percentual(int, int); 
 
int main() 
{ 
 char frase[21]; 
 int i=0, vogais=0, comprimento=0; 
 
 printf(“Digite a frase desejada:”); 
 gets_s(frase); 
 
 comprimento = strlen(frase); 
 for (i=0; i<comprimento; i++) 
 { 
 if (elVogal(frase[i])) 
 { 
 vogais++; 
 } 
} 
 
 
 
21 
 
printf(“A frase digitada: %s\n”, frase); 
printf(“A quantidade de vogais: %d\n, vogais); 
printf(“O percentual de vogais na frase: %.2f%\n”, percentual(vogais, comprimento)); 
 
system(“pause”); 
return 0; 
} 
 
bool elVogal(char letra) 
{ 
 if (letra == ‘a’ || letra ==’A’ || letra == ‘e’ || letra == ‘E’ || letra ==‘i’ || letra == ‘I’ || letra 
== ‘o’ || letra == ‘O’ || letra == ‘u’ || letra == ‘U’) 
 { 
 return true; 
} 
else 
{ 
 return false; 
} 
 
} 
int cont, total; 
double percentual(int cont, int total) 
{ 
return (double)cont*100/(double)total; 
} 
 
Testando: 
 
 
 
22 
 
 
Figura 8 – Digitando a frase e o seu resultado processado. 
 
 
 
23 
 
3.9 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE CONTENHA UMA FUNÇÃO QUE RETORNE O SEGUINTE: A 
FUNÇÃO RECEBE TRÊS VALORES FLOAT E RETORNA O QUADRADO DO 
1º MAIS A SOMA DOS OUTROS DOIS. OBSERVE QUE ESTA FUNÇÃO DE-
VERÁ RETORNAR UM TIPO FLOAT. O SEU PROGRAMA DEVERÁ TER 
ESTA FUNÇÃO, PERMITIR A DIGITAÇÃO DOS NÚMEROS E IMPRIMIR 
TANTO OS NÚMEROS DIGITADOS QUANTO O RESULTADO DA FUNÇÃO. 
Solução: 
 
# include <stdio.h> 
# include <stdlib.h> 
#include <math.h> 
 
float operação(float, float, float); 
 
int main() 
{ 
 float val1 = 0.0, val2 = 0.0, val3 = 0.0; 
 
 printf(“Digite o primeiro valor: “); 
 scanf_s(“%f”, &val1); 
 
 printf(“Digite o segundo valor: “); 
 scanf_s(“%f”, &val2); 
 
 printf(“Digite o terceiro valor: “); 
 scanf_s(“%f”, &val3); 
 
 printf(“O Resultado: %.3f”, operação(val1, val2, val3)); 
 
 printf(“\n”); 
 system(“pause”); 
 return 0; 
} 
 
float operação(float val1, float val2, float val3) 
{ 
 // O quadro do primeiro + val2 + val3 
 return pow(val1,2) + val2 + val3; 
} 
 
 
 
 
24 
 
Teste: 
 
 
Figura 9 - Digitação de três valores float. 
 
 
Figura 10 - Resultado do processamento. 
 
 
 
 
25 
 
3.10 USANDO A LINGUAGEM DE PROGRAMAÇÃO C/C++ ESCREVA UM PRO-
GRAMA QUE RECEBE UMA STRING DE ATÉ 50 CARACTERES, UM CA-
RACTERE ESPECÍFICO E DEVOLVE O NÚMERO DE OCORRÊNCIAS 
DESTE CARACTERE NESTA STRING DIGITADA. NÃO ESQUEÇA QUE O 
PROGRAMA DEVERÁ IMPRIMIR A STRING, O CARACTERE E O NÚMERO 
DE OCORRÊNCIAS. 
Solução: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
int main() 
{ 
 
 char frase[51] = {‘ ‘}; 
 char caractere = ‘ ‘; 
 int tamanho = 0, i = 0, cont = 0; 
 
printf(“Digite a frase desejada com ate 50 caracteres: “); 
gets_s(frase); 
 
printf(“\nDigite o caracter desejado: “); 
scanf_s(“%c”, &caractere); 
 
tamanho = sizeof(frase); 
 
for (i=0; i<tamanho; i++) 
{ 
 if (frase[i] == caractere) 
 { 
 cont++; 
 } 
 
 
26 
 
Figura 11 - Testando o programa. 
} 
printf(“A frase: %s\n”, frase); 
printf(“O caractere: %c\n”, caractere); 
printf(“O numero de ocorrencia: %d\n”, cont); 
 
system (“pause”); 
return 0; 
} 
 
Teste: 
 
 
 
 
 
27 
 
4 CONCLUSÕES 
 
Os programas foram desenvolvidos e testados baseados nas aulas e testadas no software 
recomendado pelo tutor do curso. Seguem os respectivos resultados dos testes, em anexo. 
 
O software instalado para testes dos programas foi o Visual Studio 2017. 
 
 
 
28 
 
5 AGRADECIMENTOS 
 
Gostaria de agradecer a minha família e colegas de serviço, pela compreensão nos de-
senvolvimentos dos exercícios solicitados. 
 
 
 
 
29 
 
6 REFERÊNCIAS BIBLIOGRÁFICAS 
Utilizei os materiais das aulas do curso.

Continue navegando