Você está na página 1de 25

SISTEMA DE ENSINO PRESENCIAL CONECTADO EM

ENGENHARIA CIVIL

EDSON DIVINO DA SILVA FILHO

ROTEIRO DE AULA PRÁTICA


ALGORÍTMOS E LÓGICA DE PROGRAMAÇÃO

Rio Verde - Goiás


2023
EDSON DIVINO DA SILVA FILHO

ROTEIRO DE AULA PRÁTICA


ALGORÍTMOS E LÓGICA DE PROGRAMAÇÃO

Atividade Prática para os cursos da Área de TI,


apresentado como requisito parcial para a obtenção de
média na disciplina de Algoritmos e Lógica de
Programação.

Tutor(a) à Distância: Carlos Alberto Goncalves

Rio Verde Goiás


2023
SUMÁRIO

1 INTRODUÇÃO......................................................................................................3
2 DESENVOLVIMENTO..........................................................................................4
2.1 ROTEIRO DE AULA PRÁTICA 1......................................................................4
2.1.1 Proposta da Atividade................................................................................... 4
2.1.2 Resolução do Problema................................................................................4
2.1.3 Algoritmo Menor ou Maior de Idade..............................................................4
2.1.4 Cálculo de Potenciação.................................................................................7
2.2 ROTEIRO DE AULA PRÁTICA 2....................................................................10
2.2.1 Atividade Proposta...................................................................................... 10
2.3 ROTEIRO DE AULA PRÁTICA 3....................................................................14
2.3.1 Desafio 1..................................................................................................... 14
2.3.2 Desafio 2..................................................................................................... 16
2.4 ROTEIRO DE AULA PRÁTICA 4....................................................................18
3 CONCLUSÃO.....................................................................................................23
REFERÊNCIAS......................................................................................................... 24
3

1 INTRODUÇÃO

O desenvolvimento da atividade prática, tem como finalidade a


vivência realística na aplicação de conceitos e fundamentos sobre diversos
aspectos e disciplinas; buscando evidenciar características sobre assuntos
pertinentes em áreas específicas de atuação.
Neste caso em específico, a atividade prática será desenvolvida
através da resolução de uma situação problema proposta no enunciado utilizando-se
o VisualG.
4

2 DESENVOLVIMENTO

2.1 ROTEIRO DE AULA PRÁTICA 1

2.1.1 Proposta da Atividade

O desafio consiste na elaboração de dois algoritmos que devem ser


desenvolvidos utilizados a proposta VisualG. O programa VisualG, trata-se de uma
plataforma gratuita Freeware onde é possível executar comandos em pseudocódigo
com uma linguagem muito próxima ao “portugol” também conhecido como português
estruturado. Atualmente o VisualG é adotado por várias instituições de ensino devido
a sua facilidade intuitiva de inserir os alunos que estão começando na área de
programação a compreender conceitos básicos, tais como: declaração de variáveis,
funções, operadores, funções, etc.
Neste contexto, serão desenvolvidos os seguintes códigos:
1. Para o primeiro algoritmo, o usuário deverá informar a sua idade e
em seguida deverá ser informada uma mensagem se ele for menor ou maior de
idade.
2. O segundo algoritmo, você deverá criar uma estrutura de
repetição com teste no início para calcular a potenciação. Você deverá escrever um
algoritmo que resolva a expressão , sendo a e b números inteiros e positivos.

2.1.2 Resolução do Problema

A primeira etapa no roteiro da atividade consiste em instalar no


computador o programa VisualG um console gratuito que permitirá a compilação e
execução do programa escrito.
Em seguida, desenvolve-se o código a ser executado:

2.1.3 Algoritmo Menor ou Maior de Idade

Quadro 1. Resolução Atividade 1 - Script Maior ou Menor de idade


5

Algoritmo "menor ou maior de idade"


// Disciplina : [Algoritmos e Lógica de Programação]
// Descrição : Programa responde maior ou menor de idade (função)

Var
// Seção de Declarações das variáveis
idade: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreva ("Qual é a idade?: ")
leia (idade)
se(idade>=18)entao
escreval("MAIOR DE IDADE")
senao

escreval(idade," anos idade")


escreval("MENOR DE IDADE")
fimse

Fimalgoritmo
Fonte: elaborado pelo autor (2023).

Imagem 1. Print do console de desenvolvimento VisualG


6

Fonte: elaborado pelo autor (2023).


Imagem 2. Compilando e executando o programa

Fonte: elaborado pelo autor (2023.

Imagem 3. Comprovando o funcionamento (informado 18 anos)


7

Fonte: elaborado pelo autor (2023).

Imagem 4. Comprovando o funcionamento (Informado 16 anos)

Fonte: elaborado pelo autor (2023).

2.1.4 Cálculo de Potenciação

Quadro 2. Resolução Atividade 2 – Estrutura de Repetição


Algoritmo "Estrutura de Repetição | Cálculo de Potenciação "
// Disciplina : [Algoritmos e Lógica de Programação]
// Descrição : Programa calcula a potenciação onde "a"=base e
"b"=expoente

Var
// Seção de Declarações das variáveis
a: inteiro
b: inteiro
potencia: real
8

Inicio
// entrada do valor da base
escreval ("Qual é o valor de a?")
leia (a)
// entrada do valor do expoente
escreval ( "Qual é o valor de b?")
leia (b)
//operador Potenciação
potencia <- a^b
escreval ( potencia )
fim algoritmo
Fonte: elaborado pelo autor (2023).

Imagem 5. Print do console de desenvolvimento

Fonte: elaborado pelo autor (2023).


9

Imagem 6. Compilando e executando o programa

Fonte: elaborado pelo autor (2023).

Imagem 7. Comprovando o funcionamento (base=5 e expoente=3)


10

Fonte: elaborado pelo autor (2023).


Na imagem 7 é possível verificar o funcionamento do código, onde
na rotina foram informados os valores de a=5 e para b=3. Neste caso:
Potência de 53 = 5*5*5 = 125

Através dos testes realizados, fica evidenciado que os algoritmos


desenvolvidos atingiram os objetivos propostos. As saídas reproduzidas pelo
programa apresentam exatamente as saídas esperadas de acordo com as
respectivas entradas informadas.

2.2 ROTEIRO DE AULA PRÁTICA 2

2.2.1 Atividade Proposta

1 - Na primeira etapa o objetivo é criar um programa em C, que


calcule a média aritmética das notas de 4 bimestres de um aluno do ensino médio. O
programa deverá pedir para que o professor digite as 4 notas, em seguida, deverá
ser calculada a média aritmética anual do aluno

Quadro 3– Código no DevC++


#include <stdio.h>
#include <stdlib.h>

int main() {
float nota1, nota2, nota3, nota4, media;

do{
printf("Digite a nota do primeiro bimestre: ");
scanf("%f", &nota1);
}while(nota1 < 0 || nota1 > 10);

do{
printf("Digite a nota do segundo bimestre: ");
scanf("%f", &nota2);
}while(nota2 < 0 || nota2 > 10);

do{
printf("Digite a nota do terceiro bimestre: ");
scanf("%f", &nota3);
11

}while(nota3 < 0 || nota3 > 10);

do{
printf("Digite a nota do quarto bimestre: ");
scanf("%f", &nota4);
}while(nota4 < 0 || nota4 > 10);

media = (nota1 + nota2 + nota3 + nota4) / 4;

printf("Media final: %.2f\n", media);


}
Fonte: elaborado pelo autor (2023).

Imagem 8. Print do console de desenvolvimento

Fonte: elaborado pelo autor (2022).

Testando o código – Foram digitadas as Notas 8, 10, 6 e 4. A média simples deve


ser 7,00
12

Imagem 9 – Código funcional

Fonte: elaborado pelo autor (2023).

2 - Como segundo desafio você deve criar um programa em C para


calcular o valor de um produto com juros. O programa deverá pedir o valor bruto de
uma conta e a taxa de juros que será aplicada. O programa deverá fazer o cálculo e
dizer qual o valor bruto, o valor líquido e quanto o cliente irá pagar de juros.

Quadro 4 – Script do DevC++


#include<stdio.h>

#include<stdlib.h>

#include<locale.h>

int main()

float principal, juros, montante;

float valorjuros;

printf("Infome Valor Principal\n");

scanf("%f",&principal);

printf("Informe percentual de de juros\n");

scanf("%f",&juros);

valorjuros = principal * (juros/100);

montante = principal + valorjuros;


13

printf("O valor principal = : %.2f\n",principal);

printf("O valor do montante = : %.2f\n",montante);

printf("O cliente pagara de juros = : %.2f\n",valorjuros);

return 0;

}
Fonte: elaborado pelo autor (2023).

Imagem 10 – Print da interface de desenvolvimento

Fonte: elaborado pelo autor (2022).

Testanto o código – informado o valor principal de 1000, taxa de


juros de 10, o resultado do montante sera 1100, e o cliente pagará de juros 100.

Imagem 11. Código Funcional

Fonte: elaborado pelo autor (2023).


14

2.3 ROTEIRO DE AULA PRÁTICA 3

2.3.1 Desafio 1

Como primeiro desafio, implemente um programa que calcula um


intervalo de tempo, a partir de informações digitadas pelo usuário. Como o cálculo
envolve “tempo” é tomado como premissa que as informações de hora e minuto
informados sejam valores válidos. O usuário deve informar um valor iniciar para hora
e outro para minuto. Em seguida, deve informar um valor final para ambas variáveis.
O programa deve fazer a diferença entre os valores, e verificar se o valor
final não é maior que o inicial, o que retornará uma mensagem.

Quadro 5 – Script no DevC++


#include <iostream>

using namespace std;

int main()
{
int h1,h2,m1,m2,s1,s2;
long TotalSegundos = 0;

cout << "Entrada do primeiro horário." << endl;


cout << "Digite separadamente Horas, minutos e segundos:
";
cin >> h1 >> m1 >> s1;

cout << "Entrada do segundo horario." << endl;


cout << "Digite separadamente Horas, Minutos e segundos:
";
cin >> h2 >> m2 >> s2;

// Diferença entre horas em segundos

if( h1 > h2 ){
TotalSegundos += 86400 - ((h1*3600)+(m1*60)+(s1));
TotalSegundos += ((h2*3600)+(m2*60)+(s2));
}else{
// Time 2 - Time 1
TotalSegundos = ((h2*3600)+(m2*60)+(s2)) -
((h1*3600)+(m1*60)+(s1));
}
15

cout << "Tota de segundos: " << TotalSegundos << endl;


cout << "Diferenca de Tempo :\t";
long hours, minutes, seconds;
hours = TotalSegundos / 3600;
cout << hours << ":";
TotalSegundos -= hours*3600;

minutes = TotalSegundos / 60;


cout << minutes << ":";
TotalSegundos -= minutes*60;

seconds = TotalSegundos;
cout << seconds << endl;
return 0;
}
Fonte: elaborado pelo autor (2023).

Imagem 11. Print do console de desenvolvimento

Fonte: elaborado pelo autor (2023.

Testando o código – Informado Hora inicial 10:30:15 e final 11:30:20,


resultado esperado 1:00:05
Código Funcional
16

Imagem 12 – Resultado do código

Fonte: elaborado pelo autor (2023).

2.3.2 Desafio 2

Criar um novo programa para explorar outra estrutura condicional.


Nesse programa o usuário deverá escolher um número de 1 a 7, e o programa
imprime o dia da semana correspondente. Por exemplo, se o usuário digitar 1,
deverá ser mostrado Domingo!

Quadro 6 – Script no DevC++


#include <stdio.h>

int main()
{
int dia;

/* Entrada do dia do usuário */


printf("Entre com um dia da semana (1-7): ");
scanf("%d", &dia);

if(dia == 1)
{
printf("Domingo");
}
else if(dia == 2)
{
printf("Segunda");
}
else if(dia == 3)
17

{
printf("Terca");
}
else if(dia == 4)
{
printf("Quarta");
}
else if(dia == 5)
{
printf("Quinta");
}
else if(dia == 6)
{
printf("Sexta");
}
else if(dia == 7)
{
printf("Sabado");
}
else
{
printf("Entrada Invalida. Os dias devem ser entre 1-7");
}

return 0;
}
Fonte: elaborado pelo autor (2023).

Imagem 13 – Print do console de desenvolvimento

Fonte: elaborado pelo autor (2023).


18

Imagem 14 – Código funcional

Fonte: elaborado pelo autor (2023).

2.4 ROTEIRO DE AULA PRÁTICA 4

Criar uma estrutura heterogênea (struct) que armazene os dados de


uma sala de aula com oito alunos. Para cada aluno deve-se considerar o nome,
quatro notas e uma média simples. Deve também ler os dados dos alunos e
apresentá-los.

Quadro 7 – Script no DevC++


#include <stdio.h>
#include <stdlib.h>
struct aluno{
char nome[35];
float n1,n2,n3,n4,media;
};

int main(int argc, char *argv[]) {


struct aluno turma[8];
int opc,i=1,j,tam=0;
while(i){
printf("\nDigite uma opcao: \n 1-Cadastrar aluno\n 2-Ler dados
gravados\n 3-Sair\n");
scanf("%d",&opc);
if(opc==1){
if(tam<8){
fflush(stdin);
printf("\n Nome:");
gets(turma[tam].nome);
printf("\n Nota 1:");
19

scanf("%f",&turma[tam].n1);
printf("\n Nota 2:");
scanf("%f",&turma[tam].n2);
printf("\n Nota 3:");
scanf("%f",&turma[tam].n3);
printf("\n Nota 4:");
scanf("%f",&turma[tam].n4);

turma[tam].media=(turma[tam].n1+turma[tam].n2+turma[tam].n3+turma[tam].n4)/4;
tam+=1;
}else{
printf("\n Tamanho maximo atingido");
}
}else if(opc==2){
for(j=0;j<tam;j++){
printf("\n Nome: %s",turma[j].nome);
printf("\n Nota 1: %.2f Nota 2: %.2f Nota 3: %.2f
Nota 4: %.2f",turma[j].n1,turma[j].n2,turma[j].n3,turma[j].n4);
printf("\n Media: %.2f",turma[j].media);
}
}else if(opc==3){
printf("\n Saindo...");
i=0;
}else{
printf("\n Comando invalido");
}
}
return 0;
}
Fonte: elaborado pelo autor (2023).
20

Imagem 14 – Print do console de desenvolvimento

Fonte: elaborado pelo autor (2023).


21

Imagem 15 – Código Funcional


22

Fonte: elaborado pelo autor (2023).


Imagem 16 – Código Funcional

Fonte: elaborado pelo autor (2023).


23

3 CONCLUSÃO

Esta atividade pratica propiciou a oportunidade de aplicação dos


conceitos teóricos das disciplinas estudados ao decorrer do semestre,
desenvolvendo no aluno o conhecimento necessário para o futuro cotidiano
profissional, e uma vivência prática dentro das organizações.
Deste modo, através da elaboração deste relatório, são colocadas
as informações apresentadas assim, como podem ser desenvolvidas tais atividades;
e que possibilitaram a junção da teoria e uma melhor compreensão do que acontece
no cotidiano da tecnologia.
Cabe ressaltar a importância da pesquisa, para que o aluno possa
desenvolver suas habilidades e suas potencialidades adquiridas; através de um
momento onde é possível revelar criatividade, e vivenciar novas experiências.
Neste sentido a execução desta atividade, trouxe um bom
aprendizado e uma possibilidade de potencializar os estudos e os conhecimentos
através da utilização do console de desenvolvimento VisualG.
24

REFERÊNCIAS

Manual do VisualG. Instituto de Educação Federal de Educação, Ciência e


Tecnologia. Disponível em:
http://www.inf.ufsc.br/~bosco.sobral/ensino/ine5201/Visualg2_manual.pdf

Tabelas Úteis VisualG. Disponível em: https://visualg3.com.br/tabelas/

Você também pode gostar