Buscar

ATIVIDADE PRÁTICA UNITER - DIEGO CORDEIRO

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 28 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 28 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 28 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 
TECNOLOGIA EM CIENCIA DE DADOS 
DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS 
 
 
 
 
 
 
 
ATIVIDADE PRÁTICA 
 
 
 
 
 
 
 
 
DIEGO DE JESUS CORDEIRO – RU: 3112949 
VINICIUS BORIN 
 
 
 
 
 
 
 
 
 
 
CONTAGEM - MINAS GERAIS 
2020 
 
 
 
1 
 
1 EXERCÍCIO 1 
ENUNCIADO: Uma certa empresa fez uma pesquisa de mercado para saber se as pessoas 
gostaram ou não do seu último produto lançado. Para isto, coletou o sexo do entrevistado e a 
sua resposta (sim ou não). Sabendo que foram entrevistadas 150 pessoas, fazer um algoritmo 
que calcule e mostre ao final: 
• O número de pessoas que responderam sim; 
• O número de pessoas que responderam não; 
• A percentagem de pessoas do sexo feminino que responderam sim; 
• A percentagem de pessoas do sexo masculino que responderam não; 
Para a resposta SIM/NÃO. Utilize uma variável do tipo CHAR, que armazena S ou N, ou 
use uma variável do tipo INT que armazena 1 (para SIM) e 2 (para NÃO). 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() { 
 // declaração de variaveis 
 int opcao = 0, msim = 0, mnao = 0, fsim = 0, fnao = 0, entrevistados = 0, sexo = 0, pessoas = 0, linha = 0, resposta = 0, sim 
= 0, nao = 0; 
 float percentualmasculinonao = 0, aux = 0, percentualfemininosim = 0;//float para o calculo de percentuais 
 //obs: para esse exercício, nao utilizei um valor total de entrevistados, declarei a variável "entrevistados" no qual é possível 
incluir a quantidade que quiser de entrevistados não tendo uma quantidade máxima 
 // menu de opções 
inicio: 
 system ("cls"); 
 printf ("\n\n1 - Adicionar dados de pesquisa"); 
 printf ("\n2 - Relatorio de pesquisa completo"); 
 printf ("\n3 - Sair"); 
 printf ("\n\nEscolha uma opcao: "); 
 scanf_s ("%d", &opcao);//ler a opção desejada no menu 
 switch (opcao) {//função que verifica qual opção foi escolhida 
 case 1:// caso a opção escolhida seja 1, executa o algoritmo deste loop 
 
 
 
 
 system ("cls");// função para limpar a tela do usuário 
 printf ("Quantas pessoas deseja incluir na entrevista: "); 
 scanf_s ("%d", &pessoas);// aqui será lido quantas pessoas deseja cadastrar na pesquisa, OBS: ao acessaar o menu e quiser 
i ncluir mais pessoas, é possível, tornando a pesquisa mais ampla 
 for (linha = 0; linha < pessoas; ++linha) {// loop será lido enquanto atingir a quantidade de pessoas que deseja cadastrar 
 sexo = 0; 
 resposta = 0; 
 printf ("\n\nPessoa %d - Digite 1 para masculino ou 2 para feminino: ", linha + 1); 
 scanf_s ("%d", &sexo);// variável para ler o sexo 
 if (sexo == 1) {//caso for do sexo masculino executa o if 
 printf ("\nA pessoa gostou do produto? 1-SIM, 2-NAO: "); 
 scanf_s ("%d", &resposta);//leio a resposta se gostou do protudo 
 if (resposta == 1) { 
 ++msim; //caso gostou, sei que é do sexo masculino e gostou do produto 
 } 
 else { 
 ++mnao; // senão, é masculino e não gostou 
 } 
 } 
 if (sexo == 2) {// já aqui, é identico ao anterior, porém caso a escolha seja do sexo feminino 
 printf ("\nA pessoa gostou do produto? 1-SIM, 2-NAO: "); 
 scanf_s ("%d", &resposta); 
 if (resposta == 1) { 
 ++fsim;//é do sexo feminino e gostou do produto 
 } 
 else { 
 ++fnao;//feminino e não gostou 
 } 
 } 
 system ("cls");//limpa a tela 
 } 
 entrevistados = entrevistados + pessoas; 
 pessoas = 0;//zerando as pessoas no inicio do cadastro 
 system ("pause"); //pausa 
 goto inicio;//retorna ao menu inicial 
 
 case 2:// aqui é o loop que mostra os resultados da pesquisa 
 if (entrevistados != 0) {// se tiver entrevistados cadastrados, executa if 
 aux = 100 / entrevistados;//como não há limite de entrevistados, a variável aux é utilizada para calcular os p ercentuais 
de acordo com a quantidade de entrevistados cadastrados 
 sim = msim + fsim;//sim recebe a quantidade de pessoas que responderam que gostaram, independente do sexo 
 nao = mnao + fnao; 
 percentualmasculinonao = mnao * aux;//aqui multiplico a quantidade de pessoas do sexo masculino responderam não 
pela variável aux, calculado anteriormente de acordo com o numero total de entrevistados 
 percentualfemininosim = fsim * aux;//aqui é o calculo do sexo feminino que respondeu sim 
 
 
 
 
 // abaixo os printfs do relatório 
 printf ("\nRELATORIO COMPLETO "); 
 printf ("\n\nForam estrevistados um total de %d pessoas", entrevistados); 
 printf ("\nO numero de pessoas que responderam SIM foi : %d", sim); 
 printf ("\nO numero de pessoas que responderam NAO foi : %d", nao); 
 printf ("\nO percentual de pessoas do sexo FEMININO que responderam SIM : %.2f", percentualfemininosim); 
 printf ("\nO percentual de pessoas do sexo MASCULINO que responderam NAO : %.2f\n\n", percentualmasculinonao); 
 } 
 else {// 
 printf ("\nVoce ainda nao cadastrou dados da pesquisa\n\n"); 
 } 
 system ("pause"); 
 goto inicio; 
 
 case 3: //opção usada para sair 
 system ("cls"); 
 printf ("voce pediu para sair, fechando programa...\n"); 
 exit (0);//fecha o programa 
 
 default: // verifica se a opção digitada eh valida 
 system ("cls"); 
 printf ("voce deve escolher uma opcao valida\n"); 
 printf ("Precione qualquer tecla para voltar ao menu\n"); 
 system ("pause"); 
 goto inicio;//retorna ao início do menu 
 } 
}//FIM DO PROGRAMA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 EXERCÍCIO 2 
 
ENUNCIADO: 
Para cada um dos consumidores de energia elétrica de uma cidade é informado o número 
da conta e o total de KW consumido no mês. Sabendo-se que o custo do KW é de R$ 1,75, fazer 
um algoritmo para: 
• Armazenar e listar o número da conta, o total de KW consumidos e o valor a pagar de 
cada consumir cadastrado; • Listar o número da conta, o total de KW consumidos e o valor a 
pagar do consumidor que mais gastou e o que menos gastou; • Mostrar a média de consumo da 
cidade; • Mostrar o número de consumidores que ultrapassaram o consumo de 170 KW; 
Armazene as informações em estruturas de vetores e/ou matrizes. Na tela, deve existir um 
MENU que pergunta ao usuário se ele deseja cadastrar um novo consumidor ou listar alguma 
informação (maior, menor, média, etc.). Uma certa empresa fez uma pesquisa de mercado para 
saber se as pessoas gostaram ou não do seu último produto lançado. Para isto, coletou o sexo 
 
 
 
 
do entrevistado e a sua resposta (sim ou não). Sabendo que foram entrevistadas 150 pessoas, 
fazer um algoritmo que calcule e mostre ao final: 
• O número de pessoas que responderam sim; 
• O número de pessoas que responderam não; 
• A percentagem de pessoas do sexo feminino que responderam sim; 
• A percentagem de pessoas do sexo masculino que responderam não; 
Para a resposta SIM/NÃO. Utilize uma variável do tipo CHAR, que armazena S ou N, ou 
use uma variável do tipo INT que armazena 1 (para SIM) e 2 (para NÃO). 
 
Solução do aluno: 
Nãoesqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
 
float custoPorKW = 1.75, clientes[100][3], maior, menor, media; //declaração de variaveis 
int opcao, total, coluna, linha, aux, tam = 0; 
int main() { //inico de código, com um menu para escolha 
 
inicio: 
 
 system("cls"); 
 printf("\nEscolha sua opcao "); 
 printf("\n1 - Cadastrar cliente : "); 
 printf("\n2 - Verificar qual cliente teve o MAIOR consumo : "); 
 printf("\n3 - Verificar qual cliente teve o MENOR consumo : "); 
 printf("\n4 - Media de consumo dos clientes : "); 
 printf("\n5 - Exibir clientes que ultrapassaram 170 kw:"); 
 printf("\n6 - Relatorio das contas : "); 
 printf("\n7 - Sair:"); 
 printf("\n\nQual a sua escolha : "); 
 scanf_s("%d", &opcao); 
 switch (opcao) { 
 
 
 case 1: //opção usada para cadastrar novos clientes 
 
 
 
 
 
 opcao = 0; 
 system("cls"); 
 if (total < 100) { // se o total de clientes for menor que 100, entra no cadastro 
 printf("Digite o numero da conta : "); 
 scanf_s("%f", &clientes[total][0]); // le o numero do cliente e armazena na matriz clientes 
 printf("\nDigite a quantidade de KW consumida pelo cliente : "); 
 scanf_s("%f", &clientes[total][1]); //le o total de kw consumido e armazena na matriz clientes 
 clientes[total][2] = clientes[total][1] * custoPorKW; // multiplica o consumo pelo custo e arma-
zena na matriz clientes 
 total = total + 1; 
 } 
 
 else { 
 
 printf("\nNao eh possível cadastrar novos clientes, maximo 100.\n"); 
 } 
 
 system("pause"); 
 goto inicio; // fim do loop opção 1 
 
 
 case 2: // utilizado para verificar qual cliente teve o maior consumo 
 
 opcao = 0; 
 maior = 0; 
 aux = 0; 
 if (total != 0) { // verifica se o total de clientes é diferente de Zero 
 for (linha = 0; linha < total; ++linha) { //passara por toda a matriz clientes 
 if (maior < clientes[linha][1]) { //testa se o consumo é maior que a variável maior 
 maior = clientes[linha][1]; //variável maior recebe o valor para testar com ou-
tros consumos de clientes da matriz 
 aux = linha; // ira armazenar a linha da matriz em que encontrar o maior con-
sumo 
 }//fim do if 
 
 }//fim do for 
 printf("O maior consumo registrado foi do cliente %.0f que consumiu %.0f KW, tendo um gasto 
de R$ %.2f\n\n", clientes[aux][0], clientes[aux][1], clientes[aux][2]); //imprime na tela a linha armazenada por aux onde foi 
encontrado o maior consumo 
 } 
 
 else { 
 printf("\nNao há clientes cadastrados"); 
 } 
 system("pause"); 
 
 
 
 
 goto inicio; //fim da opção 2 
 
 
 case 3: // utilizado para verificar qual cliente teve o MENOR consumo 
 
 opcao = 0; 
 menor = clientes[0][1]; 
 aux = 0; 
 if (total != 0) { // verifica se o total de clientes é diferente de Zero 
 for (linha = 0; linha < total; ++linha) { //passara por toda a matriz clientes 
 if (menor > clientes[linha][1]) { //testa se o consumo é menor que a variável menor 
 aux = linha; // ira armazenar a linha da matriz em que encontrar o menor con-
sumo 
 }//fim do if 
 }//fim do for 
 printf("O menor consumo registrado foi do cliente %.0f que consumiu %.0f KW, tendo um gasto 
de R$ %.2f\n\n", clientes[aux][0], clientes[aux][1], clientes[aux][2]); //imprime na tela a linha armazenada por aux onde foi 
encontrado o menor consumo 
 } 
 
 else { 
 printf("\nNao há clientes cadastrados\n"); 
 } 
 
 system("pause"); 
 //goto inicio; 
 
 
 case 4: // media de consumo de todos os clientes 
 
 opcao = 0; 
 media = 0; 
 if (total != 0) { // verifica se o total de clientes é diferente de Zero 
 for (linha = 0; linha < total; ++linha) { //passara por toda a matriz clientes 
 media = media + clientes[linha][1]; //a variável auxiliar media ira receber a somatória 
de consumo de todos os clientes 
 }//fim do for 
 media = media / total; // dividi-se a variável pela quantidade total de clientes para obter a media 
 printf("\n A media consumida de todos os clientes foi de %.0f KW\n\n", media); 
 } 
 
 else { 
 printf("\nNao há clientes cadastrados"); 
 } 
 
 
 
 
 
 system("pause"); 
 goto inicio; 
 
 
 case 5: // opção usada para verificar qual cliente ultrapassou 170kw de consumo 
 
 opcao = 0; 
 media = 0; 
 if (total != 0) { // verifica se o total de clientes é diferente de Zero 
 printf("CLIENTES DE ULTRAPASSARAM O CONSUMO DE 170 KW \n\n"); 
 printf("CONTA CONSUMO VALOR EM R$ \n"); 
 for (linha = 0; linha < total; ++linha) { //passara por toda a matriz clientes 
 if (clientes[linha][1] > 170) { //testa se o consumo for maior que 170kw 
 printf("\n"); 
 for (coluna = 0; coluna < 3; ++coluna) // se o consumo for maior, usa para 
imprimir toda a linha com os dados 
 printf(" %.2f ", clientes[linha][coluna]); 
 }//fim do if 
 
 }//fim do for 
 
 } 
 
 else { 
 printf("\nNao há clientes cadastrados"); 
 } 
 
 system("pause"); 
 goto inicio; 
 
 
 case 6: //opção usada para imprimir um relatório de todas as contas 
 
 opcao = 0; 
 if (total != 0) { // verifica se o total de clientes é diferente de Zero 
 printf("CONTA CONSUMO VALOR EM R$ \n"); 
 for (linha = 0; linha < total; ++linha) { // usado para ler a matriz ate o total de clientes 
 printf("\n"); 
 for (coluna = 0; coluna < 3; ++coluna) { 
 printf("%.2f ", clientes[linha][coluna]); 
 } 
 
 } 
 
 } 
 
 
 
 
 
 else { 
 printf("\nNao há clientes cadastrados"); 
 } 
 
 system("pause"); 
 goto inicio; // fim do loop opção 6 
 
 
 case 7: //opção usada para sair 
 
 system("cls"); 
 printf("voce pediu para sair, fechando programa...\n"); 
 //Sleep(3000); // Aqui ele pausa por 3 segundos depois continua o código 
 exit(0); 
 
 default: // verifica se a opção digitada eh valida 
 printf("voce deve escolher uma opcao valida\n"); 
 printf("Precione qualquer tecla para voltar ao menu\n"); 
 system("pause"); 
 goto inicio; 
 } // final switch 
 
} // final do metodo int main 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 EXERCÍCIO 3 
 
ENUNCIADO: 
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 todas iguais. Dada uma matriz quadrada dimensão MxM, verifique 
se ela é um quadrado mágico através de um algoritmo. 
Exemplo de matriz quadrado mágico: 
 [ 8 0 7 
 4 5 6 
 3 10 2 ] 
 
 
 
 
 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#include <locale.h> 
 
 
int opcao, coluna, linha, matriz[50][50], tam, aux, d1, d2, vLinha[50], vColuna[50], aLinha, aColuna; 
int main() { //inico de código, com um menu para escolha 
 
inicio: //menu de opções 
 
 system("cls"); //limpar tela 
 printf("\n\nMATRIZ QUADRADO MAGICO\n "); 
 printf("\nEscolha uma opcao "); 
 printf("\n1 - Insira valores na matriz"); 
 printf("\n2 - Exibir a matriz inserida"); 
 printf("\n3 - Verifique se a matriz pode ser um quadrado magico"); 
 printf("\n4 - Sair"); 
 printf("\n\n Escolhaa uma opcao : "); 
 scanf_s("%d", &opcao); 
 
 
 switch(opcao) { //usa a opcao escolhida e entra no loop da opcao escolhida 
 
 case 1: 
 system("cls"); 
 tam = 0; 
 aux = 0; 
 for (linha = 0; linha < 50; ++linha) {//usado para limpar a matriz 
 for (coluna = 0; coluna < 50; ++coluna) { 
 matriz[linha][coluna] = 0; 
 } 
 
 } 
 
 printf("Quantas linhas e colunas tera sua Matriz quadrada : "); 
 scanf_s("%d", &tam);//usado para saber de quantas linhas e colunas será a matriz 
 aux = tam * tam;//como a matriz é quadrada, multiplica-se o tamanho recebido para saber a quantidade de 
numeros que terá a matriz 
 
 
 
 
 printf("\n\nSua matriz tera % d linha e % d colunas, Com total de % d numeros : ", tam, tam, aux); 
 for (linha = 0; linha < tam; ++linha) { 
 for (coluna = 0; coluna < tam; ++coluna) { 
 printf("\nDigite um a um os valores da matriz; linha % d, coluna % d : ", linha, coluna); 
 scanf_s("%d", &matriz[linha][coluna]); 
 } 
 
 } 
 
 printf("\n\nPronto, sua matriz esta completa, favor retornar ao menu\n\n"); 
 system("pause"); 
 goto inicio; 
 
 
 case 2: //opção usada para imprimir na tela a matriz anteriormente inserida 
 
 system("cls"); 
 if (tam != 0) { 
 printf("\n Sua Matriz cadastrada : \n\n"); 
 for (linha = 0; linha < tam; ++linha) { // a matriz sera lida somente ate o tamanho definido 
 printf("\n\n"); 
 for (coluna = 0; coluna < tam; ++coluna) { 
 printf(" % d ", matriz[linha][coluna]); //imprime os números da matriz 
 } 
 printf("\n\n"); 
 } 
 
 } 
 
 else { 
 printf("\n\nVoce ainda nao cadastrou uma Matriz, volte ao menu inicial\n\n"); 
 } 
 
 system("pause"); // pausa 
 goto inicio; 
 
 
 case 3: //opção usada para verificar se a matriz inserida pode ser um quadrado magico 
 system("cls"); 
 
 if (tam != 0) { 
 d1 = 0; 
 d2 = 0; 
 aLinha = 0; 
 aColuna = 0; 
 
 
 
 
 aux = tam - 1; // variável auxiliar recebe tamanho da matriz menos 1 para usar no calculo da 
diagonal 
 printf("\n Verificando sua Matriz : \n"); 
 
 for (linha = 0; linha < tam; ++linha) { // a matriz sera lida somente ate o tamanho definido 
 d2 = d2 + matriz[linha][aux];// usado para ler e somar os valores da diagonal que co-
meça pela ultima coluna e vem decrescendo até a coluna zero 
 aux = aux - 1;//diminuo o aux para na próxima passagem, usar o valor da outra coluna 
 for (coluna = 0; coluna < tam; ++coluna) { 
 vLinha[linha] = vLinha[linha] + matriz[linha][coluna];// leios os valores de 
cada linha da matriz, somo as mesmas e guardo no vetor para comparar depois com todas as variáveis 
 vColuna[linha] = vColuna[linha] + matriz[coluna][linha];//leio os valores de 
cada coluna,somo e armazeno no vetorcoluna 
 if (linha == coluna) { 
 d1 = d1 + matriz[linha][coluna]; 
 } //neste ponto a variável diag1 lê e soma as variáveis em diagonal da ma-
triz...1.1, 2.2, 3.3 e assim por diante 
 
 } 
 
 } 
 
 //neste ponto, é feita a comparação das linhas, colunas e diagonais 
 aLinha = 0; 
 aColuna = 0; 
 for (linha = 0; linha < tam; ++linha) { 
 } 
 
 for (linha = 0; linha < tam - 1; ++linha) { //for usado ler os vetores das linhas e colunas e comparar 
seus v alores entre si...tam-1 é usado para não comparar com um valor inexistente na matriz 
 if (vLinha[linha] == vLinha[linha + 1]) 
 aLinha = aLinha + 1; 
 if (vColuna[linha] == vColuna[linha + 1]) 
 aColuna = aColuna + 1; 
 } //fim for 
 
 if ((aLinha) == (aColuna)) { 
 if ((aColuna) == (tam - 1)) { 
 printf("\n\n TESTE auxilinha %d auxcoluna %d tam-1 %d\n", aLinha, 
aColuna, tam - 1); 
 if (vLinha[0] == vColuna[0]) {//por fim, camparo todos os valores de li-
nha,coluna e diagonais 
 if (vColuna[0] == d1) 
 if (d1 == d2) 
 
 
 
 
 printf("\n\n\n PARABENS, ESTA 
MATRIZ FOI RECONHECIDA COMO UM QUADRADO MAGICO \n\n"); 
 } 
 } 
 } 
 else { 
 printf("\n\n Essa matriz NAO foi reconhecida como quadrado magico :("); 
 printf("\n\n Tente da proxima vez...\n\n"); 
 }//fim else 
 } 
 else { 
 printf("\n\nVoce ainda nao cadastrou uma Matriz, volte ao menu inicial\n\n"); 
 } 
 system("pause"); // pausa 
 goto inicio; 
 
 case 4: //opção usada para sair 
 system("cls"); 
 printf("voce pediu para sair, fechando programa...\n"); 
 exit(0); 
 
 
 default: // verifica se a opção digitada eh valida 
 printf("\nvoce deve escolher uma opcao valida\n"); 
 printf("\nPrecione qualquer tecla para voltar ao menu\n"); 
 system("pause"); 
 goto inicio; 
 
 }//fim switch 
 
}//fim int main 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 EXERCÍCIO 4 
 ENUNCIADO: 
Escrever uma função que receba como parâmetro duas strings, bem como um valor inteiro 
que representa uma posição. A função deve, portanto, inserir a segunda string no na posição 
indicada da primeira. 
Escreva um programa que receba estas duas strings do usuário, o valor da posição desejada, 
e chame a função anteriormente implementada e exiba o resultado ao usuário na tela. 
Para imprimir na tela e tirar o print screen, mostre o resultado utilizando o seu primeiro 
nome como string 1 e o seu último nome como string 2, e a posição de teste deverá ser o último 
digito do seu RU. 
 
 
Solução do aluno: 
Não esqueça de explicar o código com comentários!! 
CTRL+C/CTRL+V do Visual Studio!! 
Se desejar, defina as páginas do documento para PAISAGEM para melhor inserir os códigos. 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int main() 
{ 
 char str1[20], str2[20], auxStr[40]; 
 int pos = 0, medida1= 0, medida2 = 0, aux = 0, linha = 0, demais = 0, opcao = 0; 
 
inicio: 
 
 system("cls"); 
 printf("\n\n1 - Para digitar 2 string e posicao"); 
 printf("\n2 - Resultado com posicao digitada"); 
 printf("\n3 - Resultado com posicao de teste utilizando o ultimo numero do RU 3112949"); 
 printf("\n4 - Sair"); 
 printf("\n\Selecione uma opcao: "); 
 scanf_s("%d", &opcao); 
 
 
 
 
 
 
 switch (opcao) { 
 
 case 1: // case que recebe as strings digitadas pelo usuario e a posição escollhida 
 system("cls"); 
 getchar(); //serve para realizar a limpeza do buffer digitado no scanf_s da opcao 
 printf("Digite string numero 1: "); 
 gets_s(str1); 
 printf("\n\nDigite string numero 2: "); 
 gets_s(str2); 
 printf("\n\nDigite a posicao da string 2 na string 1: "); 
 scanf_s("%d", &pos); 
 medida1 = strlen(str1); 
 medida2 = strlen(str2); 
 system("pause"); 
 goto inicio; 
 
 
 case 2: //case que exibe a string digitada pelo usuario na sua respectiva posicao digitada pelo usuario 
 aux = 0; 
 demais = pos; 
 for (linha = 0; linha < pos; ++linha) { 
 auxStr[linha] = str1[linha]; 
 } 
 for (linha = pos; linha < pos + medida2; ++linha) { 
 auxStr[linha] = str2[aux]; 
 ++aux; 
 } 
 for (linha = pos + medida2; linha < medida1 + medida2; ++linha) { 
 auxStr[linha] = str1[pos]; 
 pos = pos + 1; 
 } 
 auxStr[medida1 + medida2] = '\0'; 
 printf("\n\nString final: %s\n\n\n", auxStr); 
 system("pause"); 
 goto inicio; 
 
 
 case 3: //case que realiza o teste com o RU 
 aux = 0; 
 demais = 9; 
 
 
 
 
 if (medida1 >= 9) { 
 for (linha = 0; linha < demais; ++linha) { 
 auxStr[linha] = str1[linha]; 
 } 
 for (linha = demais; linha < pos + medida2; ++linha) { 
 auxStr[linha] = str2[aux]; 
 ++aux; 
 } 
 for (linha = demais + medida2; linha < medida1 + medida2; ++linha) { 
 auxStr[linha] = str1[demais]; 
 demais = demais + 1; 
 } 
 auxStr[medida1 + medida2] = '\0'; 
 printf("\n\nString final: %s\n\n\n", auxStr); 
 } 
 
 else { 
 printf("\n\n A String digitadapode ser menor que a posicao de teste, certifique-se que 
ela possua mais de 9 caracteres\n"); 
 } 
 
 system("pause"); 
 goto inicio; 
 
 
 case 4: //case usada para sair 
 system("cls"); 
 printf("voce pediu para sair, fechando programa...\n"); 
 exit(0); 
 
 
 default: // é usado para verificar se a opção digitada é valida 
 system("cls"); 
 printf("voce deve escolher uma opcao valida\n"); 
 printf("Precione qualquer tecla para voltar ao menu\n"); 
 system("pause"); 
 goto inicio; 
 } //Fim do Switch 
 
}// Fim do metodo Int Main

Outros materiais