Você está na página 1de 5

Programação Estruturada ipluso INSTITUTO

4
POLITÉCNICO
DA LUSOFONIA

Cibersegurança

Trabalho Instruções de Seleção


2º semestre 2022/2023

Prático Prof.: Carlos Limão

Objetivos
A realização deste trabalho deverá permitir-lhe aperfeiçoar os conhecimentos adquiridos no domínio
das instruções de seleção em C. Para o desenvolvimento dos programas solicitados, irá necessitar
de utilizar instruções if e switch.
Estas instruções são designadas instruções de decisão ou de seleção porque permitem escolher uma
de entre várias possíveis ações a executar em seguida.

Introdução
Para escrever cada um dos programas que se seguem deve começar por criar um projeto no Visual
Studio, tal como aprendeu no trabalho de laboratório anterior.
Os projetos devem sempre ser adicionados à solução “Programação Estruturada” que foi criada no
âmbito do LAB2.
Criação de Projetos na solução “Programação Estruturada”
1. Começar por abrir a solução usando um dos seguinte métodos:
◦ Fazer duplo clique no ficheiro da solução localizado na pasta com o mesmo nome.
◦ Escolher File→ Open→ Project/Solution e selecionar o ficheiro da solução.
2. Adicionar um novo projeto à solução escolhendo File→ Add→ New Project
Recorde que em cada projeto deve definir a constante _CRT_SECURE_NO_WARNINGS para
evitar a ocorrência de avisos indesejados durante a compilação dos programas.
Definição da constante _CRT_SECURE_NO_WARNINGS em cada projeto
1. Com o botão da direito do rato clicar no nome do projeto
2. Escolher a opção Properties
3. Selecionar Configuration Properties→C/C++→ Preprocessor
4. Na linha “Preprocessor Definitions”, do lado direito, acrescentar:
“;_CRT_SECURE_NO_WARNINGS” (note a presença do ';')
5. Fazer OK

Requisitos genéricos
Para cada programa que se segue, deve ter os seguinte cuidados:
1. Por mais simples que seja, deve começar por planear a solução antes de a programar.
2. Utilize os nomes indicados em cada exercício para o projeto e ficheiro fonte.
3. Na interação com o utilizador, o programa deve ser claro quanto ao objetivo, valores que
solicita e resultados que apresenta. Sempre que são fornecidos exemplos, o programa deve
comportar-se exatamente como indicado.
4. Certifique-se de que o programa funciona corretamente, antes de o dar por concluído.
Programação Estruturada Instruções de Decisão

Exercício 1
Adicione à solução um novo projeto chamado Lab4.1 e escreva um programa (par.c) que permita
decidir se um número inteiro fornecido pelo utilizador é par ou ímpar.
Um exemplo de execução do seu programa, uma vez completo, é o que se ilustra de seguida. A
vermelho indica-se uma possível escolha do utilizador.
Introduza um inteiro: 33
O inteiro introduzido é: ímpar

Exercício 2
Adicione à solução um novo projeto chamado Lab4.2 e escreva um programa (divisivel.c) que
permita decidir se um número inteiro fornecido pelo utilizador é:
a) Divisível por 3 e por 4
b) Divisível só por um deles (por 3 ou por 4)
c) Divisível por nenhum dos dois (nem por 3 nem por 4)
De seguida ilustram-se alguns exemplos da execução do seu programa, uma vez completo. A
vermelho indicam-se as possíveis escolhas do utilizador.
Introduza um inteiro: 16
16 é divisível por 3 ou por 4 mas não pelos dois
Introduza um inteiro: 24
24 é divisível por 3 e por 4
Introduza um inteiro: 7
7 não é divisível por 3 nem por 4

Exercício 3
Adicione à solução um novo projeto chamado Lab4.3 e escreva um programa (coord.c) que solicite
ao utilizador as coordenadas (x, y) reais de um ponto no plano cartesiano e indique a sua localização
(quadrante, eixo ou origem).
A interação entre o seu programa e o utilizador deverá ter o aspeto que
se ilustra nos dois exemplos seguintes (a vermelho mostram-se as
possíveis respostas do utilizador):
Exemplo 1:
Coordenadas no plano cartesiano
Coordenada x: -1.0
Coordenada y: -2.5
O ponto (-1.0, -2.5) esta' no III quadrante

Exemplo 2:
Coordenadas no plano cartesiano
Coordenada x: 0.0
Coordenada y: 4.8
O ponto (0.0, 4.8) esta' no eixo dos y

Prof. Carlos Limão 2/5


Programação Estruturada Instruções de Decisão

Exercício 4
Adicione à solução um novo projeto chamado Lab4.4 e escreva um programa (ph.c), que permita
avaliar o pH de uma solução. Para o efeito, o seu programa deverá solicitar o pH da solução ao
utilizador e implementar o seguinte algoritmo:

Esc “Neutro”

Esc “Alcalino”

Esc “Muito Alcalino”

Esc “Muito Acido” Esc “Acido”

Exercício 5
Adicione à solução um novo projeto chamado Lab4.5 e escreva um programa (calc.c) que
implemente uma calculadora com quatro funções – adição, subtração, divisão e multiplicação. O
programa deverá aceitar uma expressão aritmética (envolvendo apenas um operador) e realizar a
operação indicada.
O seu programa deverá ser capaz de realizar as quatro operações com valores reais. Para isso deve:
1. Ler uma expressão aritmética que envolva dois operandos e um operador.
2. Usar uma instrução switch para descodificar o operador especificado.
3. Verificar se o operador é válido (+, -, *. /) usando o bloco default da instrução switch.
Imprima uma mensagem de erro no ecrã caso o operador seja inválido. Por exemplo:
Introduziu um operador desconhecido.
A interação entre o programa e o utilizador deverá ter o aspeto que se ilustra de seguida (a vermelho
mostra-se uma possível expressão introduzida pelo utilizador):

Bem vindo 'a calculadora de 4 funções (+, -, *, /).


Introduza uma expressão: 2.5 * 5.4
2.5 * 5.4 = 13.5

Prof. Carlos Limão 3/5


Programação Estruturada Instruções de Decisão

Para ler uma expressão aritmética, deve ter em atenção que o operador deve ser lido
usando uma variável do tipo char. Por exemplo, para ler a expressão 3 + 5, poderíamos
fazer:
int operando1, operando2;
char operador;

scanf(“%d %c %d”, &operando1, &operador,


&operando2);

Para perceber o exemplo acima recorde que uma variável do tipo char pode armazenar
qualquer carácter. Os espaços na string “%d %c %d” indicam que a função scanf deve ler
qualquer número de espaços ou linhas em branco entre os três elementos .

Formatar o número de casas decimais mostradas na escrita de um float ou um double


Quando, numa instrução printf, especificar a escrita de um double, pode usar um ponto
seguido de um inteiro, logo após o caráter %, em que o inteiro especifica o número de
casas decimais a utilizar.
Por exemplo, para escrever a massa da lua com 8 casas decimais:
printf(“A massa da lua vale: %.8lf\n”, 7.34767309E22);

Teste
Para garantir que os seus programas resolvem de facto o problema proposto, deve testa-los
convenientemente. Para o efeito deve fornecer um conjunto de dados para os quais conheça o
resultado e verificar que o programa funciona corretamente para esse caso.
No entanto, em geral deve lembrar-se que o facto de o programa produzir resultados corretos com
esse conjunto de dados não significa que o fará para todos os conjuntos de dados possíveis, pelo que
deve utilizar o número suficiente de conjuntos de dados de entrada, de modo a certificar-se que o
programa opera corretamente.

Documentação e outros requisitos


Para além de produzir os resultados corretos, o trabalho a realizar deverá respeitar as normas para a
apresentação de trabalhos (ver documento no site da cadeira).
Em particular, deve cumprir os seguintes requisitos:
1. Possuir um cabeçalho que identifique claramente os autores, a cadeira, o trabalho e uma breve
descrição do que faz o programa.
2. Possuir um breve comentário que descreva o objetivo de cada variável e constante utilizados
no programa.
3. Possuir comentários a descrever o que fazem as diferentes instruções do seu programa, caso a
sua utilidade não seja óbvia.
4. Utilizar as regras de indentação descritas no site da cadeira.
5. Utilizar identificadores descritivos para os nomes das variáveis e constantes.
6. Utilizar constantes com nome em vez de “números mágicos” sempre que apropriado.

Prof. Carlos Limão 4/5


Programação Estruturada Instruções de Decisão

Conclusão do Trabalho
Para dar por concluído o seu trabalho deve submeter, no Moodle, um ficheiro zip chamado
PElab4.zip com os seguintes ficheiros:
• par.c - Exercício 1
• divisivel.c - Exercício 2
• coord.c - Exercício 3
• ph.c - Exercício 4
• calc.c - Exercício 5
Certifique-se que o código fonte de cada um dos programas inclui um comentário, no mínimo com
um cabeçalho (devidamente adaptado) como o que utilizou no 2º trabalho de laboratório.

Prof. Carlos Limão 5/5

Você também pode gostar