Relatorio 11

Você também pode gostar

Você está na página 1de 10

Colegiado de Engenharia da Computação

Universidade Federal do Vale do São Francisco

CCMP0016 – Algoritmo e Programação


Relatório da Aula de Laboratório

RELATÓRIO
Faça o relatório da resolução do:
1. a = 1 + (p1 % N1), p1 = 11*(11+M+N1) + N1*D*(D+M)
2. b = 1 + (p2 % N2), p2 = D*(M+11 ) + N2*(M+D)
Onde D e M o dia e o mês do seu aniversário, respectivamente; N1 e N2
são o número de questões da lista de Exercícios 1 e Exercícios 3,
respectivamente.

Pelo seguinte programa:

#include <stdio.h>

int main()
{
int p1, p2, M, N1, N2, D, a, b;
M=11;
D=20;
N1=53;
N2=67;
p1 = 11*(11+M+N1) +
N1*D*(D+M); p2 = D*(M+11 ) +
N2*(M+D); a = 1 + (p1 % N1);
b = 1 + (p2 % N2); printf("a:
%d \nb:%d",a, b);

return 0;
}

Teremos:

Exercício – a
31. Implemente um programa para gerar uma matriz M[N][N] (para qualquer
valor de N), e que calcule e mostre a soma dos elementos da área
hachurada f, abaixo. Faça os Planos de Teste para N = 8 e N = 9.

Dicionário de dados
Variável Descrição Tipo de dado Valor inicial Processo
matriz Recebe a int input E
matriz

N Numero de int 8 ou 9 E
linhas e
colunas da
matriz
contador Contador para int 1 P
auxiliar

calcularSomaAr Calcular a int - P


eaHachurada soma pedida

imprimirMatriz Imprime a int - P


matriz

Plano de teste
N= 8 N= 9:

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9
9 10 11 12 13 14 15 16 10 11 12 13 14 15 16 17 18 17 18 19 20
21 22 23 24 19 20 21 22 23 24 25 26 27 25 26 27 28 29 30 31
32 28 29 30 31 32 33 34 35 36
33 34 35 36 37 38 39 40 37 38 39 40 41 42 43 44 45
41 42 43 44 45 46 47 48 46 47 48 49 50 51 52 53 54 49 50 51 52
53 54 55 56 55 56 57 58 59 60 61 62 63
57 58 59 60 61 62 63 64 64 65 66 67 68 69 70 71 72 73 74 75
76 77 78 79 80 81

S= 708 S= 955

Programa-fonte
#include <stdio.h>
int calcularSomaAreaHachurada(int n, int matriz[][n]) {
int soma = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i >= j && i + j >= n - 1 && j <= n / 2 && i >= n / 2)
{ soma += matriz[i][j];
}
}
}
return soma;
}

void imprimirMatriz(int n, int matriz[][n]) {


for (int i = 0; i < n; i++) { for (int j
= 0; j < n; j++) { printf("%3d ",
matriz[i][j]);
}
printf("\n");
}
}

int main()
{ int N = 8;
int matriz[N][N];

int contador = 1; for (int i =


0; i < N; i++) { for (int j =
0; j < N; j++) { matriz[i]
[j] = contador++;
}
}

printf("Matriz para N = 8:\n");


imprimirMatriz(N, matriz);

int soma_area_hachurada = calcularSomaAreaHachurada(N, matriz);


printf("\nSoma da área hachurada para N = 8: %d\n",
soma_area_hachurada);

return 0;
}
Imagens da execução

Exercício – b
39. Elabore um programa que preencha uma matriz N x M com os valores
das vendas de uma loja, em que cada linha representa um mês do ano e
cada coluna representa uma semana do mês. O programa deverá calcular e
mostrar: a) o total vendido em cada mês do ano, mostrando o nome do mês
por extenso; b) o total vendido em cada semana durante todo o ano; c) o
total vendido pela loja no ano. Faça o Plano de Teste para N = 12 e M =
4.
Dicionário de dados
Variável Descrição Tipo de dado Valor inicial Processo
vendasAno Recebe a int input E
matriz

preencherMatr Função para void - P


i z preencher a
matriz
calcularTotal Função para void Calculo P
P orMes calcular o
total de
vendas no mês
calcularTotal Função para void calculo P
P orSemana calcular o
total de
vendas na
semana
calcularTotal Função para void Calculo P
P orAnual calcular o
total de
vendas no ano
Plano de teste
Meses Semana 1 Semana 2 Semana 3 Semana 4

1 5 10 15 20 50

2 30 25 40 10 105

3 5 8 9 8 30

4 10 15 20 30 75

5 10 55 7 100 172

6 30 40 40 90 200

7 20 40 50 95 205

8 10 65 50 65 190

9 2 80 80 28 190

10 3 90 50 33 176

11 50 5 15 35 105

12 15 10 45 14 84

Total 190 443 421 528 1582

Programa-fonte
#include <stdio.h>

#define N 12
#define M 4

const char* meses[N] = {"Janeiro", "Fevereiro", "Março", "Abril",


"Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro",
"Dezembro"};
void preencherMatriz(int matriz[][M]) {

printf("Informe as vendas para cada semana do ano:\n");

for (int i = 0; i < N; i++) {


printf("%s:\n", meses[i]); for
(int j = 0; j < M; j++)
{ printf("Semana %d: ", j +
1); scanf("%d", &matriz[i]
[j]);
}
}
}

void calcularTotalPorMes(int matriz[][M]) { printf("\


nTotal vendido em cada mês do ano:\n");

for (int i = 0; i < N; i++) {


int totalMes = 0; for (int j
= 0; j < M; j++)
{ totalMes += matriz[i]
[j];
}
printf("%s: %d\n", meses[i], totalMes);
}
}

void calcularTotalPorSemana(int matriz[][M]) {


printf("\nTotal vendido em cada semana durante todo o ano:\n");

for (int j = 0; j < M; j++) {


int totalSemana = 0; for (int i
= 0; i < N; i++)
{ totalSemana += matriz[i]
[j];
}
printf("Semana %d: %d\n", j + 1, totalSemana);
}
}

void calcularTotalAnual(int matriz[][M]) {


int totalAnual = 0;

for (int i = 0; i < N; i++) {


for (int j = 0; j < M; j++) {
totalAnual += matriz[i][j];
}
}
printf("\nTotal vendido pela loja no ano: %d\n",
totalAnual);
}

int main() {

int vendasAno[N][M];

preencherMatriz(vendasAno);

calcularTotalPorMes(vendasAno);

calcularTotalPorSemana(vendasAno);

calcularTotalAnual(vendasAno);

return 0;
}
Saída Formatada
Informe as vendas para cada semana do ano:
Janeiro:
Semana 1: 5
Semana 2: 10
Semana 3: 15
Semana 4: 20
Fevereiro:
Semana 1: 30
Semana 2: 25
Semana 3: 40
Semana 4: 10
Março:
Semana 1: 5
Semana 2: 8
Semana 3: 9
Semana 4: 8
Abril:
Semana 1: 10
Semana 2: 15
Semana 3: 20
Semana 4: 30
Maio:
Semana 1: 10
Semana 2: 55
Semana 3: 7
Semana 4: 100
Junho:
Semana 1: 30
Semana 2: 40
Semana 3: 40
Semana 4: 90
Julho:
Semana 1: 20
Semana 2: 40
Semana 3: 50
Semana 4: 95
Agosto:
Semana 1: 10
Semana 2: 65
Semana 3: 50
Semana 4: 65
Setembro:
Semana 1: 2
Semana 2: 80
Semana 3: 80
Semana 4: 28
Outubro:
Semana 1: 3
Semana 2: 90
Semana 3: 50
Semana 4: 33
Novembro:
Semana 1: 50
Semana 2: 5
Semana 3: 15
Semana 4: 35
Dezembro:
Semana 1: 15
Semana 2: 10
Semana 3: 45
Semana 4: 14
Total vendido em cada mês do ano:
Janeiro: 50
Fevereiro: 105
Março: 30
Abril: 75
Maio: 172
Junho: 200
Julho: 205
Agosto: 190
Setembro: 190
Outubro: 176
Novembro: 105
Dezembro: 84

Total vendido em cada semana durante todo o ano:


Semana 1: 190
Semana 2: 443
Semana 3: 421
Semana 4: 528

Total vendido pela loja no ano: 1582


...Program finished with exit code 0
Press ENTER to exit console.

Você também pode gostar