Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Roteiro Aula Prática: Algoritmos e Lógica de Programação, Exercícios de Lógica Matemática

Este roteiro de aula prática aborda conceitos de algoritmos e lógica de programação, com foco em estruturas de decisão e execução sequencial. Exemplos práticos de código em linguagem de programação, como a criação de um labirinto virtual e um sistema de aprovação de empréstimos, proporcionando uma experiência interativa de aprendizado.

Tipologia: Exercícios

2024

Compartilhado em 06/11/2024

ricardo-crocetta-biazin
ricardo-crocetta-biazin 🇧🇷

2 documentos

1 / 13

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Roteiro Aula Prática
ALGORITMOS E LÓGICA DE PROGRAMAÇÃO
Ricardo Crocetta Biazin
38243237
2024
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Pré-visualização parcial do texto

Baixe Roteiro Aula Prática: Algoritmos e Lógica de Programação e outras Exercícios em PDF para Lógica Matemática, somente na Docsity!

Roteiro Aula Prática

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

Ricardo Crocetta Biazin 38243237 2024

// Unidade: U2 ELEMENTOS DE ALGORITMOS // Aula: A2 EXECUÇÃO SEQUENCIAL E ESTRUTURAS DE DECISÃO programa { // inicia o programa inteiro premio =0 // variavel que vai guardar a soma do premio cadeia continuar // guarda a opção de continuar ou não na floresta funcao inicio() { //criando a função inicio // escreva é usando para escrever na tela uma terminada informação //retoiro // " Você é um explorador corajoso que se aventura em uma misteriosa Floresta Sussurrante em busca de // " tesouros lendários e segredos perdidos. Ao adentrar na floresta, você se depara com três caminhos // " diferentes, cada um levando a uma parte desconhecida e perigosa da floresta. Sua missão é escolher // " sabiamente o caminho a seguir, enfrentando desafios e tomando decisões que impactarão sua jornada e // " sua pontuação final. Prepare-se para esta aventura cheia de mistérios! escreva("Você é um explorador corajoso que se aventura em uma misteriosa Floresta Sussurante em busca de toseuros lendários e segredos perdidos. \n") escreva("Ao entrar na floresta, você se depara com três caminhos distintos: \n") escreva("Caminho 1: Das sobras \n") escreva("Caminho 2: Da luz \n") escreva("Caminho 3: Das criaturas \n") escreva("Escolha um dos caminhos (1, 2 ou 3): \n") escolha_caminho() // vai para a função que escolhe o caminho a seguir sair_da_floresta() // vai para a função que sai da floresta } funcao escolha_caminho() // funcoa que gerencia as escolhas do caminho { inteiro caminho // cria uma variavel do tipo inteiro escreva("-> ")

senao // caso na função SE ele nao digite a opção valida, entra nesta opção { escreva("Você não sabe quem eu sou. \n") } } funcao caminho_da_luz() //composição da caminho_da_luz { escreva("Este caminho é iluminado por raios de sol que filtram entre as copas das árvores. Parece ser ocaminho mais seguro e reconfortante da floresta. \n ") escreva("Você encontra uma ponte quebrada sobre um rio turbulento. \n \n") escreva("Você tentará atravessar a ponte quebrada ou procurará um desvio seguro? \n ") escreva("-> ") cadeia decisao leia(decisao) // pede para o usuario digitar algo se( decisao == "ponte quebrada") // regra SE, ele valida se o que vc digitou é o que ele quer, se sim entra na opção abaixo se nao vai para a SENAO { escreva("VocÊ encontra uma fonte mágica que restaura sua saúde e Você tem 50 pontos. \n") premio = 50 // guarda o valor do premio } senao {escreva("Você foi pelo desvio seguro. \n")} } funcao caminho_das_criaturas() // composição da funcao caminho_das_criaturas { escreva("Este caminho é repleto de sons estranhos e pegadas misteriosas no chão. Parece ser o caminhomais imprevisível e enigmático da floresta. \n ") escreva("Você se depara com uma criatura mágica adormecida bloqueando o caminho. \n \n") escreva("Você tentará contornar a criatura com cuidado ou acordá-la para passar? \n ") escreva("-> ")

cadeia decisao // cria a variavel decisao do tipo Cadeia leia(decisao) // pede para o usuario digitar algo se( decisao == "contornar a criatura") // regra SE, ele valida se o que vc digitou é o que ele quer, se sim entra na opção abaixo se nao vai para a SENAO { escreva("Você encontra uma árvore encantada que concede a ele uma habilidade especial de camuflagem, Você tem 75 pontos. \n") premio = 75 // guarda o valor do premio } senao {escreva("Você acordou a criatura. \n")} } funcao sair_da_floresta() // função Sair da floresta { escreva("Você saiu da floresta, sua pontuação é: ") escreva(premio) escreva(" pontos") } } }

// Define algumas paredes labirinto[ 1 ][ 1 ] = 1 labirinto[ 1 ][ 3 ] = 1 labirinto[ 2 ][ 2 ] = 1 labirinto[ 3 ][ 1 ] = 1 labirinto[ 3 ][ 3 ] = 1 // Define o tesouro em uma posição específica tesouroX = u.sorteia( 0 , 4 ) tesouroY = u.sorteia( 0 , 4 ) labirinto[tesouroX][tesouroY] = 2 // Tesouro // Loop enquanto o explorador não encontrar o tesouro enquanto (labirinto[posX][posY] != 2 ) { escreva("Você está na posição [", posX, "][", posY, "]\n") escreva("Digite seu movimento (w= cima, s= baixo, a= esquerda, d= direita): ") leia(movimento) // Atualiza a posição com base no movimento se (movimento == 'w' e posX > 0 ) // Cima { posX = posX - 1 } senao se (movimento == 's' e posX < 4 ) // Baixo { posX = posX + 1 } senao se (movimento == 'a' e posY > 0 ) // Esquerda { posY = posY - 1 } senao se (movimento == 'd' e posY < 4 ) // Direita {

posY = posY + 1 } // Verifica se o novo espaço é um caminho livre ou uma parede se (labirinto[posX][posY] == 1 ) // Colidiu com parede { escreva("Você bateu em uma parede! Volte para o início.\n") posX = 0 posY = 0 } senao se (labirinto[posX][posY] == 2 ) // Encontrou o tesouro { escreva("Parabéns! Você encontrou o tesouro!\n") } senao { escreva("Você se moveu para a posição [", posX, "][", posY, "]\n") } } } }

// Adicionar mensagens mais específicas para cada critério não atendido } return 0 ; }

Procedimento/Atividade nº 1 (Virtual) Atividade proposta: Você foi designado pela sua instituição de ensino para desenvolvedor um programa de classificação dos alunos. O programa deverá solicitar alguns dados, inclusive as médias das disciplinas de cada aluno para que ele possa fazer o cálculo da média do aluno. Deverá solicitar também o nome do aluno. #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ALUNOS 100 // numero mix de alunos // defime a struct typedef struct { char nome[ 50 ]; float media1, media2, mediaGeral; int classificacao; } Aluno; // Função para calcular a média geral float calcularMediaGeral(float nota1, float nota2) { return (nota1 + nota2) / 2 ; } // Função de comparação para a ordenação (ordem decrescente) int compararAlunos(const void *a, const void *b) { Aluno alunoA = (Aluno)a; Aluno alunoB = (Aluno)b; return alunoB->mediaGeral - alunoA->mediaGeral; } int main() { Aluno alunos[MAX_ALUNOS]; int numAlunos, i; float mediaTurma = 0 ; FILE *arquivo;

for (i = 0 ; i < numAlunos; i++) { fprintf(arquivo, "Nome do Aluno: %s\n", alunos[i].nome); fprintf(arquivo, "Média Disciplina 1: %.2f\n", alunos[i].media1); fprintf(arquivo, "Média Disciplina 2: %.2f\n", alunos[i].media2); fprintf(arquivo, "Média Geral: %.2f\n", alunos[i].mediaGeral); fprintf(arquivo, "Classificação: %dº\n\n", alunos[i].classificacao); } fprintf(arquivo, "Média da Turma: %.2f\n", mediaTurma / numAlunos); ///fecha o arquivo fclose(arquivo); printf("Dados salvos no arquivo resultados.txt\n"); return 0 ; }