Você está na página 1de 6

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E

TECNOLOGIA SÃO PAULO - IFSP

Disciplina LG1A1 Semestre 1º


Professores Eurides Balbino Data 13/10/2021
Aluno Daniel Araujo de Oliveira Prontuário SP3082831
LISTA 04

Questão 1. Elabore um algoritmo em Linguagem C que permaneça em looping exibindo o menu


a seguir até que o usuário forneça uma opção válida.
Adicionalmente, seu código deverá levar em consideração: as dimensões das telas, cores de
texto e de fundo de tela, bordas duplas e as corretas acentuações ortográficas.

Quando o usuário fornecer uma opção inválida, o programa deverá emitir a seguinte mensagem
de erro.

Após a exibição da mensagem, o programa deverá exibir o menu de opções novamente.

Quando o usuário fornecer uma opção válida, o programa deverá mostrar as seguintes
mensagens para as respectivas opções:
Questão 2. Elabore um algoritmo em Linguagem C que capture a nota de prova de um aluno. A
nota válida é um valor entre zero e dez; ela também pode ter casas decimais. O programa
deverá permanecer em looping até que seja digitada uma nota válida. Caso o usuário forneça
uma nota inválida, o programa deverá informar o erro. Quando o looping finalizar, o programa
deve informar a nota digitada com duas casas decimais. Abaixo segue exemplo da execução do
programa.

Questão 3. Elabore um algoritmo em Linguagem C que mostre na tela todos os números primos
entre zero e um valor de limite definido pelo usuário. Ao final da exibição, mostre o total de
números do intervalo que são primos. Abaixo consta como deve ser apresentada a execução do
programa.
Peço desculpas antes de minhas respostas, pois não consegui atender as expectativas
solicitadas pelos exercícios. Utilizo GNU/Linux e apesar do esforço em procurar soluções para a
exibição da tabela ASCII extendida, não fui capaz de obter êxito e tudo que aparecia durante a
execução do programa era o símbolo “?” onde deveriam estar os respectivos caracteres de
bordas. Da mesma forma falhei em alterar as cores de fundo ao exibir as respostas de acordo
com a opção selecionada pelo usuário. Compreendo que não vem ao caso citar que utilizo um
computador antigo, mas por tal motivo sou incapaz de utilizar uma máquina virtual, não exagero
em dizer que sem a troca do sistema operacional para GNU/Linux, seria inviável continuar
utilizando esta máquina para qualquer fim. Compreenderei se minha atividade for descartada por
não atender aos requisitos, mas de toda forma, gostaria de pedir que ao menos a parte lógica
seja levada em consideração. Mais uma vez peço desculpas pelas falhas.
1)

//programa que emula um caixa eletrônico


#include <stdio.h> //entrada e saída de dados
#include <locale.h> //permite exibir corretamente a acentuação
//função main inicia o programa
int main(void){

setlocale(LC_ALL,NULL); //permite exibir corretamente a acentuação

int opc = 0; //variável de escolha

//exibição do menu
do{
printf("@======================@\n");
printf("|%16s%10s", "OPÇÕES", "|\n");
printf("@======================@\n");
printf("| 1. Depósito%11s", "|\n");
printf("| 2. Saldo%14s", "|\n");
printf("| 3. Extrato%12s", "|\n");
printf("| 4. Transferência%6s", "|\n");
printf("@======================@\n");
printf(" Escolha: ");
scanf("%d", &opc); //solicita a opção
printf("\n\n");

//exibe a opção selecionada


if(opc == 1){
printf("@======================@\n");
printf("%s%16s%9s","|", "Depósito", "|\n");
printf("@======================@\n\n\n");
}else if(opc == 2){
printf("@======================@\n");
printf("%s%14s%10s", "|", "Saldo", "|\n");
printf("@======================@\n\n\n");
}else if(opc == 3){
printf("@======================@\n");
printf("%s%15s%9s", "|", "Extrato", "|\n");
printf("@======================@\n\n\n");
}else if(opc == 4){
printf("@======================@\n");
printf("%s%19s%6s", "|", "Transferência", "|\n");
printf("@======================@\n\n\n");
}else{
printf("@======================@\n");
printf("%s%21s%6s", "|", "OPÇÃO INVÁLIDA", "|\n");
printf("@======================@\n\n\n");
}
}while(opc != 1 && opc != 2 && opc != 3 && opc != 4);

setbuf(stdin, NULL); //limpa o buffer do teclado


printf("Pressione enter para sair..."); //pede que o usuário aperte enter
getchar(); //ao apertar enter, finaliza a execução
return 0; //programa executado com sucesso
}
2)

//programa que recebe uma nota de 0-10


#include <stdio.h> //entrada e saída de dados
#include <locale.h> //permite exibir corretamente a acentuação
//função main inicia o programa
int main(void){

setlocale(LC_ALL,NULL); //permite exibir corretamente a acentuação

float nota = 11.0; //variável da nota

do{
printf("Digite a nota: "); //solicita a nota ao usuário
scanf("%f", &nota); //armazena o valor em nota

if(nota < 0.0 || nota > 10.0){


printf("Você não digitou uma nota válida!\n");
}else{
printf("Nota [%.2f] digitada.\n", nota);
}
}while(nota < 0.0 || nota > 10.0);

setbuf(stdin, NULL); //limpa o buffer do teclado


printf("Pressione enter para sair..."); //pede que o usuário aperte enter
getchar(); //ao apertar enter, finaliza a execução
return 0; //programa executado com sucesso
}
3)

//programa que exibe os números primos em um determinado intervalo


#include <stdio.h> //entrada e saída de dados
#include <locale.h> //permite exibir corretamente a acentuação
//função main inicia o programa
int main(void){

setlocale(LC_ALL,NULL); //permite exibir corretamente a acentuação

int final; //variável de extensão do intervalo


int primos = 0; //variável de quantidade dos num primos
int linha = 2; //variável para formatação da exibição
int cont; //variável de contagem

printf("Insira o valor final: "); //solicita o valor ao usuário


scanf("%d", &final); //armazena o valor em final

//exibição dos números primos


if(final < 2){ //caso 2, apenas 1 número primo
printf("%02d números primos neste intervalo\n", primos);
}else if(final == 2){
printf("[%04d]\n", 2);
printf("%02d número primo neste intervalo\n", primos+1);
}else if(final == 3){ //caso 3, apenas 2 núeros primos
printf("[%04d] [%04d]\n", 2, 3);
printf("%02d números primos neste intervalo\n", primos+2);
}
//acima de 3, todo número natural pode ser dividido por 2 e/ou 3
//exceto os números primos
if(final > 3){
printf("[%04d] [%04d] ", 2, 3);
for(cont = 4; cont <= final; cont++){
if(cont % 2 != 0 && cont % 3 != 0){
printf("[%04d] ", cont);
primos++;
linha++;
if(linha == 5){
printf("\n");
linha = 0;
}
}
}
printf("\n%02d números primos neste invervalo\n", primos+2);
}
setbuf(stdin, NULL); //limpa o buffer do teclado
printf("Pressione enter para sair..."); //pede que o usuário aperte enter
getchar(); //ao apertar enter, finaliza a execução
return 0; //programa executado com sucesso
}

Você também pode gostar