Prévia do material em texto
UNIVERSIDADE ANHAGUERA
BACHARELADO EM ENGENHARIA CIVIL
VINÍCIUS WANDEKOCKEM BARBOSA
MATRICULA - 2025367502
ATIVIDADE PRÁTICA – ALGORITMOS E LÓGICA DE PROGRAMAÇÃO
Execução Sequencial E Estruturas De Decisão
PORTO SEGURO – BAHIA
08/2025
VINÍCIUS WANDEKOCKEM BARBOSA
ATIVIDADE PRÁTICA – ALGORITMOS E LÓGICA DE PROGRAMAÇÃO
Execução Sequencial E Estruturas De Decisão
Roteiro de Aula Prática apresentado a Universidade ANHAGUERA como requisito para obtenção de média para a disciplina de Bacharelado em engenharia civil.
Tutor(a) à Distância: TONY LINCOLN DIAS DE ANDRADE
PORTO SEGURO - BAHIA
08/2025
U2:ELEMENTOS DE ALGORITMOS
A2:EXECUÇÃO SEQUENCIAL E ESTRUTURAS DE DECISÃO
Código:
programa
{
// Variáveis principais para controle do jogo
inteiro pontos_totais
cadeia entrada_jogador
// Caminho 1: Enigma sombrio
funcao caminho_das_sombras()
{
escreva("\nVocê decidiu seguir pela Trilha das Sombras. Árvores altas bloqueiam a luz e a escuridão domina o ambiente. Um clima de mistério envolve o local.\n")
escreva("\nDe repente, surge uma criatura mística que protege o caminho. Ela propõe um enigma: 'Quem sou eu? Tenho olhos, mas não vejo. Tenho boca, mas não falo.'\n")
escreva("Digite sua resposta: ")
leia(entrada_jogador)
// Ajuste da entrada para facilitar a comparação
entrada_jogador = entrada_jogador
se (entrada_jogador == "caveira")
{
escreva("Você acertou o enigma! Um baú mágico aparece diante de você.\n")
pontos_totais = pontos_totais + 100
}
senao
{
escreva("Você errou... A criatura não permite sua passagem.\n")
}
}
// Caminho 2: Decisão de atravessar ou não
funcao caminho_da_luz()
{
escreva("\nVocê escolheu a Trilha da Luz. A claridade atravessa as copas das árvores, tornando o caminho mais acolhedor.\n")
escreva("Logo à frente, você vê uma ponte danificada sobre um rio agitado.\n")
escreva("Deseja tentar atravessar a ponte? (sim/nao): ")
leia(entrada_jogador)
se (entrada_jogador == "sim")
{
escreva("Você atravessou com sucesso! Do outro lado, encontra uma fonte mágica que revigora sua energia.\n")
escreva("Você ganhou 50 pontos.\n")
pontos_totais = pontos_totais + 50
}
senao
{
escreva("Você preferiu não arriscar e volta pelo mesmo caminho, sem encontrar nada novo.\n")
}
}
// Caminho 3: Criatura adormecida no caminho
funcao caminho_das_criaturas()
{
escreva("\nVocê se aventura pela Trilha das Criaturas. Sons estranhos ecoam e há marcas misteriosas no chão.\n")
escreva("Você encontra uma criatura mágica dormindo profundamente, bloqueando a passagem.\n")
escreva("Deseja tentar passar discretamente por ela? (sim/nao): ")
leia(entrada_jogador)
se (entrada_jogador == "sim")
{
escreva("Você contorna silenciosamente a criatura e encontra uma árvore encantada que lhe concede o poder da camuflagem!\n")
escreva("Você recebeu 75 pontos.\n")
pontos_totais = pontos_totais + 75
}
senao
{
escreva("Você escolhe não agir e permanece no mesmo lugar, sem obter nada.\n")
}
}
// Função principal que dá início ao jogo e gerencia escolhas
funcao inicio()
{
inteiro trilha_escolhida
pontos_totais = 0 // Pontuação inicial definida como zero
// Laço principal da aventura
enquanto (verdadeiro)
{
escreva("\nBem-vindo à Floresta Sussurrante!\n")
escreva("Você está diante de três trilhas misteriosas. Qual deseja seguir?\n")
escreva("1) Trilha das Sombras\n")
escreva("2) Trilha da Luz\n")
escreva("3) Trilha das Criaturas\n")
escreva("4) Encerrar a jornada\n\n")
escreva("Digite sua escolha (1, 2, 3 ou 4): ")
leia(trilha_escolhida)
se (trilha_escolhida == 4)
{
escreva("\nSua aventura termina por aqui.\n")
escreva("Pontuação total acumulada: ", pontos_totais, " pontos.\n")
pare // Encerra a aventura
}
// Direciona para o caminho escolhido
escolha(trilha_escolhida)
{
caso 1:
caminho_das_sombras()
pare
caso 2:
caminho_da_luz()
pare
caso 3:
caminho_das_criaturas()
pare
caso contrario:
escreva("Essa opção não é válida. Tente novamente.\n")
}
}
}
}
Console executado:
U2:ELEMENTOS DE ALGORITMOS
A3:ESTRUTURAS DE REPETIÇÃO
Código:
programa
{
inclua biblioteca Util --> u
inteiro labirinto[5][5], linhaJogador = 0, colunaJogador = 0, linhaTesouro, colunaTesouro
caracter direcaoEscolhida
funcao inicio()
{
gerarLabirinto()
colocarTesouro()
// Enquanto o jogador não encontrar o tesouro, continua o jogo
enquanto (linhaJogador != linhaTesouro ou colunaJogador != colunaTesouro)
{
mostrarLabirinto()
escreva("\nVocê está na posição: (", linhaJogador, ", ", colunaJogador, ")\n")
escreva("Escolha uma direção para se mover:\n")
escreva("'W' para cima\n'S' para baixo\n'A' para esquerda\n'D' para direita\n")
leia(direcaoEscolhida)
moverPersonagem(direcaoEscolhida)
// Verifica se o jogador bateu numa parede
se (labirinto[linhaJogador][colunaJogador] == 1)
{
escreva("Você bateu em uma parede! Voltando ao início...\n")
linhaJogador = 0
colunaJogador = 0
}
}
escreva("Incrível! Você encontrou o tesouro escondido na posição (", linhaTesouro, ", ", colunaTesouro, ")!\n")
}
funcao gerarLabirinto()
{
// Gera o mapa com paredes aleatórias
para (inteiro linha = 0; linha 0)
{
linhaJogador = linhaJogador - 1
}
pare
caso 'S':
se (linhaJogador 0)
{
colunaJogador = colunaJogador - 1
}
pare
caso 'D':
se (colunaJogador
#include // Biblioteca para manipulação de caracteres
int main() {
// Declaração das variáveis principais
float salarioMensal, quantiaSolicitada, entradaInicial;
char situacaoCredito, condicaoEmprego;
// Coleta de informações do usuário
printf("Informe sua renda mensal: ");
scanf("%f", &salarioMensal);
printf("Informe o valor que deseja solicitar como empréstimo: ");
scanf("%f", &quantiaSolicitada);
// Limpa o buffer para garantir leitura correta de caracteres
while(getchar() != '\n');
printf("Como está seu histórico de crédito? (B = Bom, R = Ruim): ");
scanf("%c", &situacaoCredito);
situacaoCredito = toupper(situacaoCredito); // Converte para letra maiúscula
while(getchar() != '\n');
printf("Seu vínculo empregatício é estável? (E = Estável, I = Instável): ");
scanf("%c", &condicaoEmprego);
condicaoEmprego = toupper(condicaoEmprego);
printf("Informe o valor de entrada para o empréstimo: ");
scanf("%f", &entradaInicial);
// Variáveis de controle da decisão
int emprestimoAprovado = 1; // 1 = aprovado, 0 = recusado
char motivoNegacao[100] = "";
// Regras de decisão
if (quantiaSolicitada > 0.3 * salarioMensal) {
emprestimoAprovado = 0;
sprintf(motivoNegacao, "O valor solicitado (%.2f) ultrapassa 30%% da sua renda mensal (%.2f).",
quantiaSolicitada, 0.3 * salarioMensal);}
else if (situacaoCredito == 'R') {
emprestimoAprovado = 0;
sprintf(motivoNegacao, "Seu histórico de crédito está marcado como ruim.");
}
else if (condicaoEmprego == 'I' && entradaInicial
#include
#include
#define TAMANHO_MAX 100 // Tamanho máximo para nomes
// Estrutura que representa um estudante
typedef struct {
char identificador[TAMANHO_MAX];
float avaliacao1;
float avaliacao2;
float desempenho;
int posicao;
} Estudante;
// Função que retorna a média das duas avaliações
double calcularMedia(float notaA, float notaB) {
return (notaA + notaB) / 2;
}
// Função de comparação usada na ordenação dos estudantes por média (decrescente)
int ordenarPorDesempenho(const void *x, const void *y) {
const Estudante *estudanteX = (const Estudante *)x;
const Estudante *estudanteY = (const Estudante *)y;
if (estudanteX->desempenho desempenho) {
return 1;
} else if (estudanteX->desempenho > estudanteY->desempenho) {
return -1;
} else {
return 0;
}
}
int main() {
int totalEstudantes, indice;
// Solicita ao usuário o número de estudantes
printf("Informe quantos estudantes deseja cadastrar: ");
scanf("%d", &totalEstudantes);
// Vetor que armazena os dados
Estudante lista[totalEstudantes];
// Coleta de dados para cada estudante
for (indice = 0; indice