Ficha 2 PT

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

Laboratório de Programação

Exercícios Ficha 2

Exercício 1 (com solução)

Usando os códigos da tabela ASCII como referência:

NULL SOM EOA EOM EOT WRU RU BELL FE0 HT LF VTAB FF CR SO SI


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

DC0 DC1 DC2 DC3 DC4 ERR SYNC LEM S0 S1 S2 S3 S4 S5 S6 S7


16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

␣ ! " # $ % & ’ ( ) * + , - . /
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

0 1 2 3 4 5 6 7 8 9 : ; < = > ?
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

@ A B C D E F G H I J K L M N O
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

P Q R S T U V W X Y Z [ \ ] ^ _
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

‘ a b c d e f g h i j k l m n o
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111

p q r s t u v w x y z { | } ~ DEL
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

Escreva um programa que leia do terminal uma letra minúscula e escreva a correspondente maiúscula:

Introduza a letra minuscula : f


O correspondente maiusculo de f = F

Solução
# include < stdio .h >

int main () {
char ch ;
printf ( " Introduza a letra minuscula : " ) ;
scanf ( " % c " , & ch ) ;
printf ( " O correspondente maiusculo de % c = % c \ n " , ch , ch - ( 'a ' - 'A ') ) ;
}

Exercício 2 (com solução)

Em C, uma MACRO é um fragmento de código-c ao qual damos um identificador usando a diretiva #define:
# define < nome da macro > < codigo -c >

Exemplos:
# define PRIMEIRA_LETRA 'A '
# define UM_VALOR_INTEIRO 1 + 2 + 100 * 2

Onde for usada, a macro será substituída pelo seu código-c:


char uma_letra = PRIMEIRA_LETRA ; // toma o valor : 'A '
int i = UM_VALOR_INTEIRO ; // toma o valor : 1+2+100*2 ( = 203)

Escreva um programa em C que:


1. Defina a constante PI com o valor 3.14159265359 (dica: MACRO!)

2. Calcule o perímetro e a área de uma circunferência de raio r (introduzido pelo utilizador), segundo as fórmulas:

a ◦ = πr 2 , p ◦ = 2πr

2023/2024 ESTiG - Escola Superior de Tecnologia e Gestão de Bragança 1


Laboratório de Programação
Exercícios Ficha 2

Solução
# include < stdio .h >

# define PI 3.14159265359

int main () {
float r ;
printf ( " Introduza o raio da circunferencia : " ) ;
scanf ( " % f " , & r ) ;
printf ( " Area = %f , Perimetro = % f \ n " , PI * r * r , 2 * PI * r ) ;
}

Exercício 3 (com solução)

Em C o operador aritmético % permite determinar o resto de uma divisão:


int resto = 7 % 5 ; // resto = 2

Escreva um programa em C que:


1. Pergunte ao utilizador um número (inteiro) de segundos
2. Calcule o total de horas, minutos e segundos para o valor obtido
Atenção: em C a divisão de 2 números inteiros, resulta num inteiro

Exemplo de output:
Introduza o numero de segundos : 3723
h=1, m=2, s=3

Solução
# include < stdio .h >

int main () {
int segundos ;
printf ( " Introduza o numero de segundos : " ) ;
scanf ( " % d " , & segundos ) ;

int h = segundos / 3600 ;


int m = ( segundos % 3600) / 60 ;
int s = segundos % 60 ;
printf ( " h = % d m = % d s = % d \ n " , h , m , s ) ;
}

Exercício 4 (com solução)

Escreva um programa em C que:


1. Pergunte ao utilizador o valor do salário (float)
2. Se o valor do salário for inferior a 400 e, adicione-lhe 100 e
Dica: Recorra à estrutura de seleção simples if

Exemplo de output:
Introduza o valor do salario : 225
Salario : 325 euro

Solução
# include < stdio .h >

int main () {
float salario ;
printf ( " Introduza o valor do salario : " ) ;

2023/2024 ESTiG - Escola Superior de Tecnologia e Gestão de Bragança 2


Laboratório de Programação
Exercícios Ficha 2

scanf ( " % f " , & salario ) ;

if ( salario <400) {
salario = salario + 100 ;
}

printf ( " Salario : % f euro \ n " , salario ) ;


}

Exercício 5
Escreva um programa em C que:
1. Pergunte ao utilizador o valor de dois números inteiros - a, b
2. Troque o valor das duas variáveis e as mostre no terminal
Exemplo de output:
a: 1
b: 2
Novos valores - a = 2 , b = 1

Exercício 6
Um objeto que se encontra inicialmente em repouso, é sujeito a uma força que lhe provoca uma aceleração a de valor constante.
O espaço percorrido por esse objeto no intervalo de tempo t , é dado pela seguinte fórmula:
a × t2
s=
2
Escreva um programa em C que:
1. Pergunte ao utilizador os valores inteiros da aceleração (a) e do intervalo de tempo (t)
2. Apresente o valor calculado para o espaço percorrido (s)
Exemplo de output:
Aceleracao : 9 <- stdin
Intervalo de Tempo : 5 <- stdin
Espaco percorrido : 112.500000

Exercício 7
1. Implemente um programa que leia do terminal 3 valores - (a, b, c)
2. Verifique que nenhum dos valores é 0 (zero)
3. Apresente os valores introduzidos por ordem crescente no terminal
Dica: use a estrutura de controlo if para conseguir o efeito

Exercício 8
1. Implemente um programa que leia um carácter (c)
2. O programa deverá dizer no terminal se o carácter lido é:
• Uma letra minúscula ou maiúscula ([a-z] ou [A-Z])
• Um algarismo ([0-9])
• Tipo não alfanumérico (i.e.: os restantes)
3. Se o carácter for alfanumérico, deverá mostrar a versão maiúscula e minúscula.

2023/2024 ESTiG - Escola Superior de Tecnologia e Gestão de Bragança 3


Laboratório de Programação
Exercícios Ficha 2

Exercício 9
Execute o seguinte código e comente os resultados:
# include < stdio .h >

int main () {
int n ;
float x ;
char ch ;
x = 100.554 ;
n = x;
ch = 'd ';
printf ( " Valor de x = %f\n", x);
printf ( " Valor de n = %d\n", n);
printf ( " Valor de n ( char ) = %c\n", n);
printf ( " Valor de ch = %c\n", ch ) ;
printf ( " Valor de ch ( int ) = %d\n", ch ) ;
}

Exercício 10
Qual o valor das seguintes expressões, tendo em conta a seguinte declaração (calculado em sequência):
int x, y;

• y = 4 + 3 * 2
• x = 3 * 4 / 2 - 2
• x = y++

• x += 3
• y -= 2
• x /= 3

• y %= 3
• x *= y++ + 3

Exercício 11
Assuma a seguinte inicialização:
int p = 5, k = 3;

1. Considerando que as expressões não são sequenciais, tente apurar os valores de p, k


• p -= 25
• k = 20 / 5
• k = ++k
• k = p-- - 2
• p %= 2 * 2
• p = ++k * 5
• k = p & 3
• p <<= 1
• p = p / k * 10

2023/2024 ESTiG - Escola Superior de Tecnologia e Gestão de Bragança 4


Laboratório de Programação
Exercícios Ficha 2

Exercício 12
Tente apurar o resultado das seguintes expressões:

• 2 > 7 ? 3 : 4
• 5 > 20 || 20 > 5
• !(73 % 2 != 0)

• 21.6 / 3.0 + 3.0


• 5 % 3 * 2 + 7 >= 2

Exercício 13 (extra-aula)

1. Escreva um programa que peça ao utilizador 2 números inteiros (num1, num2) e mostre no terminal as operações aritméticas
mais comuns, exemplo:

Introduza 2 numeros inteiros [ num1 , num2 ]: 2 ,3


2 + 3 = 5
2 - 3 = -1
2 * 3 = 6
2 / 3 = 0

2. Modifique o seu programa de forma que pergunte ao utilizador a operação a realizar, exemplo:

Escolha um operador :
+) adicao
-) subtracao
*) multiplicacao
/) divisao
Operador : /
Introduza 2 numeros inteiros [ num1 , num2 ]: 12 ,3
12 / 3 = 4

Exercício 14 (extra-aula)

Implemente um programa que receba dois valores do tipo inteiro e que apresente o resultado das operações aritméticas:
• Divisão inteira
• Divisão real

• O resto da divisão
• A raiz quadrada da soma dos dois valores ( sqrt)
• O primeiro valor incrementado em 1 unidade e o segundo valor decrementado em 1 unidade

Introduza dois valores : 17 5


A divisao inteira = 3
A divisao real = 3.4
O resto da divisao = 2
A raiz quadrada da soma dos dois valores = 4.69
O primeiro valor incrementado = 18
O segundo valor decrementado = 4

2023/2024 ESTiG - Escola Superior de Tecnologia e Gestão de Bragança 5

Você também pode gostar