Buscar

Atividade Prática 2018 - Lógica da Programação e Algoritmos (3/5 questões resolvidas)

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 5 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

Prévia do material em texto

Atividade prática 
Curitiba PR / Prof. Vinicius Borin 
 
(Professor, utilizei printf_s e scanf_s para fazer a atividade prática pois o visual studio (no meu computador) não 
aceita compilar o código de outra forma, no caso, com printf 'normal' como seria no code blocks ou dev c++. E, o 
exercício 4 foi todo feito no dev c++ pois tive dificuldades de fazê-lo rodar no VS 2017 por conta dessas pequenas 
diferenças... enfim, apenas um adendo.) 
 
Exercício 1: 
Faça um algoritmo em linguagem C que recebe três valores X, Y e Z do usuário, e determine se estes 
valores podem formar os lados de um triangulo (por exemplo, o valor zero não pode formar um triangulo). 
Em caso afirmativo, informar na tela se o triangulo é equilátero, isósceles ou escaleno. Imprima na tela um 
teste do seu programa utilizando os três últimos valores de sua matricula da UNINTER como lados do 
triangulo, cada valor da sua matrícula será um dos valores X, Y ou Z. Por exemplo, se sua matricula For 
1234567, faça X = 5, Y = 6 e Z = 7. Resposta: 
#include <stdio.h> 
#include<stdlib.h> int 
main() 
{ 
 int x, y, z; // variáveis de entrada 
 
 printf_s("Indique o lado 1 (X) do triangulo: "); // lado 1 
 scanf_s("%d", &x); // conteúdo da variável x que será exibido na tela 
 printf_s("Indique o lado 2 (Y) do triangulo: "); // lado 2 
 scanf_s("%d", &y); // conteúdo da variável y que será exibido na tela 
 printf_s("Por fim, indique o lado 3 (Z) do triangulo: "); // lado 3 
 scanf_s("%d", &z); // conteúdo da variável z que será exibido na tela 
 
 if (x + y >= z && x + z >= y && y + z >= x) // conferindo se é um triângulo 
 { 
 if (x == y && y == z && z == x) { 
 printf_s("Triangulo Equilatero!\n\n"); } // 
se tiver essas condições será equilátero else 
if (x == y || y == z || z == x) { 
 printf_s("Triangulo Isoscele!\n\n"); 
 } // caso contrário ele pula e, caso tenha essas, será isóscele 
 else if (x != y && y != z && z != x) { 
 printf_s("Triangulo Escaleno!\n\n"); 
 } // por último, se for escaleno 
 } 
 else //logo, se os valores não formarem nenhum triângulo, irá aparecer na tela: 
 printf_s("Os valores inseridos sao invalidos para se formar um triangulo, lamento! 
\n\n"); 
 system("pause"); // pausa o 
terminal return 0; 
 
} 
 
 
 
 
Exercício 3: 
Faça um algoritmo em linguagem C com as seguintes funcionalidades: 
• Leia um vetor de N posições. O valor máximo de N deverá ser no máximo 100. A leitura deverá ser 
feita manualmente pelo teclado; 
• Crie mais dois vetores. Armazene em um destes vetores todos os valores PARES digitados, e no 
outro, todos os valores ÍMPARES digitados; 
• Imprima na tela, de uma forma legível, o número do seu RU, o vetor dos pares e o vetor dos 
ímpares, este último deve ter multiplicado cada valor pelos dois últimos números da sua matrícula. 
Por exemplo: se sua matricula for 1234567, multiplique cada valor do vetor por 67. Resposta: 
#include <stdio.h> 
#include <stdlib.h> 
 
int main() { 
 
 int i, num[100], n = 0, pares[100], npar = 0, impares[100], nimpar = 0, ru = 2407680; // 
variáveis 
 
 printf_s("\nInforme a quantidade de numeros (no MAX 100!): "); // valor escrito pelo usuário 
 scanf_s("%d", &n); // valor guardado 
 while ((n > 100) || (n < 0)) { // analisando se o número é maior que 100 e/ou menor que 0 
 printf_s("Numero de valores invalido!!!\n"); // caso o usuário tenha digitado um valor que 
não caiba nas especificações acima, o laço se repete ↓ printf_s("\nInforme a quantidade 
de numeros: "); // repetições scanf_s("%d", &n); 
 } 
 printf_s("\nInforme os numeros:\n"); // caso tenha informado os dados certos, cairá aqui ↓ 
 for (i = 0; i < n; i++) { // analisando os dados 
digitados scanf_s("%d", &num[i]); 
 if (num[i] % 2 == 0) // é par? Se sim, guarda na variável npar 
 pares[npar++] = num[i]; 
 else // não é par, então só pode ser ímpar. Guarda na variável nimpar 
 impares[nimpar++] = num[i]; 
 } 
 printf_s("\n====================IMPRIMINDO RU:====================\n"); // aviso 
printf_s("\n %d", ru); // impressão do ru na tela 
 printf_s("\n\n========================Pares:========================\n"); // 
aviso for (i = 0; i < npar; i++) { 
 printf_s("\n \t%d", pares[i]); // imprimindo pares 
 } 
 printf_s("\n\n====================Impares X 80:=====================\n"); { 
 for (i = 0; i < nimpar; i++) 
 printf_s("\n \t%d", (impares[i] * 80)); // imprimindo 
impares 
 } 
 printf_s("\n\n"); // pular duas linhas 
 
 system("pause"); // pausa o terminal 
 return 0; 
} 
 
 
 
 
Exercício 4: 
Faça um algoritmo em linguagem C com as seguintes funcionalidades: 
• Receba duas matrizes como dados de entrada. A dimensão das matrizes deve ser de, no máximo 
5x5. Ambas matrizes devem ter as mesmas dimensões; 
• O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma checagem usando um laço 
de repetição que só permita o programa avançar caso ele digite dimensões corretas de no máximo 
5; 
• Escreva ambas matrizes na tela, de uma forma legível; 
• Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últimos dois números 
da sua matricula da UNINTER; 
• Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos 
últimos dois números da sua matricula da UNINTER; Resposta: 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int main(int argc, char *argv[]) { // variáveis de entrada 
 char matricula[] = "2407680"; // vetor de caracteres para representar (ou receber) o 
número da matricula printf("Sua matricula eh: %s \n", matricula); // imprimindo na tela o 
número definido acima char *to = (char*)malloc(6); // aloca memória no heap 
 strncpy(to, matricula + strlen(matricula) - 2, 2); // copia a quantidade de caracteres da string 
int duasCasas = atoi(to); 
printf("Final: %d \n", duasCasas); // imprimindo os últimos dois números da matricula 
int tamanhoMatriz = 0; 
 do 
 { 
 printf("Informe o tamanho da matriz \n"); // recebendo o valor da matriz 
 scanf("%d", &tamanhoMatriz); 
 if (tamanhoMatriz > 5 || tamanhoMatriz < 1) // analisando se o tamanho é de acordo com 
o definido 
 { 
 printf("Tamanho maximo permitido eh 5\n"); // caso o valor não seja o ideal, essa mensagem será 
exibida 
 } 
 } while (tamanhoMatriz > 5 || tamanhoMatriz < 1); 
 int matriz1[tamanhoMatriz][tamanhoMatriz]; // Declaração de Matrizes 
 int matriz2[tamanhoMatriz][tamanhoMatriz]; // Declaração de Matrizes 
 int i1 = 0; // variável i1 representa a linha e i2 a coluna da matriz 
 int i2 = 0; 
 for (i1; i1 < tamanhoMatriz; i1++) 
 { 
 i2 = 0; 
 for (i2; i2 < tamanhoMatriz; i2++) 
 { 
 matriz1[i1][i2] = i1 + i2 + 1; // matriz soma os valores de i1 e i2 
 matriz2[i1][i2] = i1 + i2 + 1; // '' 
 } 
 } 
 printf("Matriz1\n"); // imprimindo (nome) "matriz 1" na tela 
 i1 = 0; 
 for (i1; i1 < tamanhoMatriz; i1++) 
 { 
 printf("|"); // manter as matrizes organizadas 
 i2 = 0; 
 for (i2; i2 < tamanhoMatriz; i2++) // se i1 e i2 condizer com o tamanho especificado para a 
matriz: 
 { 
 printf("%d|", matriz1[i1][i2]); // impressão da matriz 1 na tela 
 } 
 printf("\n"); // pula a linha 
 } 
 printf("Matriz2\n"); // imprimindo (nome) "matriz 2" na tela 
 i1 = 0; 
 for (i1; i1 < tamanhoMatriz; i1++) // analisando para concluir se o tamanho está correto 
 { 
 printf("|"); // manter as matrizes organizadas 
 i2 = 0; 
 for (i2; i2 < tamanhoMatriz; i2++) // se i1 e i2 condizer com o tamanho especificado paraa 
matriz: 
 { 
 printf("%d|", matriz2[i1][i2]); // impressão da matriz 2 na tela 
 } 
 printf("\n"); // pula a linha 
 } 
 printf("Soma X matricula\n"); // imprimindo (nome) "Soma X matricula" na tela 
 i1 = 0; 
 for (i1; i1 < tamanhoMatriz; i1++) 
 { 
 printf("|"); // manter as matrizes organizadas 
 i2 = 0; for (i2; i2 < tamanhoMatriz; i2++) // 
se isso estiver certo: 
 { 
 printf("%d|", ((matriz2[i1][i2] + matriz2[i1][i2])*duasCasas)); // matriz 1 e 
matriz 2 serão multiplicadas pelos últimos dois números do RU 
 } 
 printf("\n"); // pula a linha 
 } 
 printf("Diagonal\n"); // imprimindo (nome) "Diagonal" na tela printf("|"); 
// organização da matriz 
i1 = 0; 
for (i1; i1 < tamanhoMatriz; i1++) 
{ 
 i2 = 0; 
 for (i2; i2 < tamanhoMatriz; i2++) 
 { 
 if (i1 == i2) // i1 igual a i2 
 { 
 printf("%d|", ((matriz1[i1][i2] + matriz2[i1][i2]) * duasCasas)); 
 } 
 } 
 } 
 
 
 system("pause"); // pausa o terminal 
 return 0; 
}

Continue navegando