Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Em C o valor falso representado por 0 (Zero) Todos os outros valores representam o verdadeiro. verdadeiro
Nota importante a = b diferente de a == b O operador == verifica se duas expresses so iguais, enquanto que o operador = utilizado tili ado para a atribuio atrib io de valores alores a variveis.
4
A instruo if - else
A instruo if-else, uma das instrues de controlo de fluxo da linguagem C. Permite indicar quais as circunstncias em que determinada instruo ou conjunto de instrues deve ser executada. executada A sua sintaxe :
if (condio) ( di )
Instruo1; else instruo2;
5
A instruo if - else
if (condio)
Instruo1; else instruo2;
Exemplo:
# include <stdio.h> main() { int x; printf i tf (Introduza (I t d um nmero); ) scanf (%d, & x); if (x>=0) printf (Nmero positivo\n); else printf (Nmero negativo\n); } O programa permite aps a introduo de um nmero dizer se este positivo, caso seja igual ou maior que zero ou negativo, negativo caso este seja menor que zero.
Exerccio 11-C:
Desenvolva um programa que controle a temperatura de um frigorifico atravs da introduo da temperatura:
Caso a temperatura seja maior ou igual a zero este dever devolver a mensagem LIGAR Caso contrrio dever devolver a mensagem PARAR
Exerccio 12-C:
1. Elabore um software que permita ao introduzir a nota de uma disciplina informar se o aluno est aprovado ou reprovado d na di disciplina. i li 2 C 2. Considere id uma escala l d de 0 a 20 em que d de 9 9,5 5 a 20 o aluno dever transitar.
Exerccio 13-C:
1. Elabore um software que ao introduzir as notas das disciplinas de Matemtica, de Portugus e de Ingls de d t determinado i d aluno l i informe f qual l a sua mdia di e se a sua mdia positiva ou negativa. 2. Considere uma escala de 0 a 20 em que de 9,5 a 20 a mdia positiva. positiva
10
Exerccio 14-C:
1. Elabore um software que adicione 50 ao salrio de um funcionrio, caso este seja igual ou inferior a 500.
11
12
else printf("Nao tem direito a subsidio por ultrapassar os 500 euros de ordenado\n"); system("PAUSE"); }
13
14
Exerccio 15-C:
1. Elabore um software que atravs da introduo de um salrio calcule quanto o funcionrio ter de pagar de i imposto t t tendo d em ateno t a seguinte i t t tabela: b l
Salrio <1000 >=1000 e < 5000 >= 5000 Taxa 5% 11% 35% %
16
Exerccio 16-C:
1. Elabore um software que permita informar qual o escalo a que pertence um jogador de futebol atravs d i da introduo t d d da sua id idade: d
Infantis <=10 anos Iniciados <=12 anos Juvenis <= 16 anos Juniores <= 18 anos Sniores > 21 anos
17
Exerccio 17-C:
1. Elabore um software que permita informar pela introduo da idade de um individuo se este criana ( (menor que 13 anos), ) adolescente d l t ( (menor que 18 anos), adulto (maior que 18).
18
Exerccio 18-C:
Escreva um programa capaz de identificar se uma pessoa an, gigante ou de estatura normal. As condies di so as seguintes: i t Altura<1.40m (An) 1.40m=<Altura<=2.00m 1 40 Alt 2 00 (Estatura (E t t normal) l) Altura>2.00m (Gigante)
19
Exerccio 19-C:
Implemente um programa que receba o peso de uma pessoa e o seu sexo, e indique o seu estado actual:
Masculino P Peso ..50 51 60 51..60 61..80 81 90 81..90 91.. E d actual Estado l MuitoMagro M Magro Equilibrado Gordo MuitoGordo P Peso ..40 41 50 41..50 51..65 66 80 66..80 81.. Feminino E d actual Estado l MuitoMagra M Magra Equilibrada Gorda MuitoGorda
20
A instruo switch
A instruo switch adapta-se tomada de que q o nmero de decises em possibilidades elevada (em geral maior do que 2, 2 seno usa usa-se se o if if-else) else), de forma a reduzir a complexidade de if-else consecutivos. consecutivos
21
Sintaxe - switch
switch (expresso) { case item_1: instruo_1; break; case item_2: instruo_2; break; }
22
Sintaxe - switch
#include <stdio.h> #include <stdlib.h> main() { char est_civil; printf("C i tf("C - Casado C d \n"); \ ") printf("S - Solteiro \n"); printf("V - Viuvo \n"); printf("D printf( D - Divorciado \n \n"); ); printf("Introduza a letra correspondente ao seu estado Civil\n"); scanf("%c", & est_civil); switch(est_civil) { case 'c':printf(" CASADO\n");break; case 's':printf(" SOLTEIRO\n");break; case 'v':printf(" ' ' i tf(" VIUVO\n");break; VIUVO\ ") b k case 'd':printf(" DIVORCIADO\n");break; default:printf(" Estado civil incorrecto\n"); } system("PAUSE"); Formador: Henrique Fidalgo }
23
Exerccio 20-C:
Elabore um programa que permita ler o seu peso na terra, terra escolher um planeta, e calcular o seu peso nesse planeta. A relao de p planetas :
Exerccio 21-C:
Elabore um programa que calcule atravs da introduo do salrio, , o imposto p pago p g p por mulheres e p por homens, , sabendo que as mulheres pagam 10% de imposto e que os homens pagam 15%.
25
Exerccio 22-C:
Escreva um programa que indique o nmero de dias de determinado ms, , atravs da introduo do ms.
26
Exerccio 23-C:
Elabore um programa que calcule atravs da introduo do nmero do menu o montante a p pagar g p pelo cliente:
N. 1 2 3 4 5 6 Menu Mini Hamburger Mega Hamburger Giga Hamburger Tera Hamburger Mega g Salada Giga Salada Preo 5,35 6,15 7 50 7,50 8,00 4,50 , 5,00
27
Exerccio 24-C:
Elabore um programa que calcule atravs da introduo da da marca de um automvel e da distncia de determinada viagem, qual o consumo esperado.
N. 1 2 3 4 5 6 Carro Opel Corsa CDTI Peugeot g 207 HDI Skoda Fabia TD Mercedes C220 D Renault Mgane CDI Seat Ibiza TDI Consumo (L/100) 4,5 5,5 , 5,6 7 5 5,5
28
Exerccio 26-C :
Construa um programa que permite calcular a rea de determinada figura geomtrica escolhida pelo utilizador:
N. 1 2 3
Frmula de clculo area = lado*lado2 Area = base*altura/2 Area = 3,14 3 14*raio*raio raio raio
30
Exerccio 27-C :
Construa um programa que permite calcular o cmbio entre a moeda euro e as unidades monetrias do quadro abaixo:
N. A B C D
31
Exerccio 28-C :
Construa um programa que permita converter uma temperatura introduzida em Celsius para outra escala, conforme a tabela abaixo:
N. A B C D Unidade Fahrenheit Kelvin Rankine Raumur Frmula graus 1,8 + 32 graus + 273,15 graus 1,8 1 8 + 32 + 459 459,67 67 graus 0,8
32
Exerccio 29-C :
A empresa XPTO necessita de um programa que calcule qual o desconto a aplicar a determinado cliente conforme a tabela abaixo e o montante final a pagar pelo cliente: (Nota: Utilize o switch e if-else.)
N. A Unidade ptimo Cliente Bom Cliente Compra >250 >100 outras >250 >100 outras >250 >100 outras >250 >100 outras t Desconto 40% 25% 15% 30% 15% 10% 20% 10% 5% 10% 5% 33
Ciclos - while
A instruo while (tambm chamada ciclo), executa uma instruo ou bloco de instrues enquanto determinada condio for verdadeira. A sua sintaxe :
34
Ciclos - while
Exemplo:
Escreva um programa que coloque no ecr os primeiros 10 nmeros inteiros. (1, 2, 3, ,10)
35
Ciclos - while
Resoluo: #include <stdio.h> main() { int i=1; while (i<=10) { printf(%d\n, i); i i 1 i=i+1; } }
36
Exerccio 30-C:
Implemente um programa que permita ler 10 nmeros inteiros e que no final da leitura apresente a soma de todos eles e a sua mdia. Utilize para isso uma estrutura de repetio while.
37
Exerccio 30-C:(resoluo)
#include <stdio.h> #include <stdlib.h> main() { int n=1; float num num=0,soma=0; 0,soma 0; while(n<=10) { printf("Introduza p ( um inteiro:"); ); scanf("%f",&num); soma=soma+num; n=n+1; } printf ("A soma e %f e a sua media e %f", soma, soma/10); system("PAUSE"); }
38
Exerccio 31-C:
Construa um conversor electrnico que permita ler um valor em euros e o converta para dlares. Este programa deve permitir fazer quantas converses o utilizador quiser, devendo apenas terminar quando for inserido o valor l zero no campo das d moedas. d 1 = 1,428 1 428 dlar
39
Exerccio 32-C
Elabore a mdia de nmeros introduzidos
41
Exerccio 33-C:
Faa um programa que escreve no monitor a mesma frase 10 vezes. E depois faa com que o programa g mostre o nmero de cada linha no incio e no final da linha, conforme ex: 1S Sou um programa C! 1 2 Sou um programa C! 2 3 Sou um programa C! 3
42
Exerccio 34-C:
Faa um programa que mostra no monitor os nmeros de 1 ate 1000.
43
Exerccio 35-C:
Faa um programa que calcula a tabuada de um nmero introduzido pelo utilizador.
44
Exerccio 36-C:
Elabore um programa que calcule o total a pagar por determinado cliente atravs da introduo do nmero do menu. O software dever permitir a soma de vrios menus e dever terminar se for introduzido o nmero 0. N. 1 2 3 4 5 6 0 Menu Mini Hamburger Mega Hamburger Giga Hamburger Tera Hamburger M Mega S l d Salada Giga Salada SAIR
45
Exerccio 37-C:
Elabore um programa que permite efectuar operaes de crdito ou dbito numa conta bancria. O programa dever perguntar qual o saldo inicial da conta e qual a operao que o utilizador pretende efectuar (dbito ou crdito), crdito) assim como o montante a debitar, actualizando o saldo da conta sempre que se efectue uma operao. No final dever devolver o saldo da conta.
O Opco D C S
46
Exerccio 38-C:
Elabore um programa que calcule o total a pagar por determinado cliente atravs da introduo da letra correspondente do produto. O software dever permitir a soma de vrios produtos e no final dever permitir aplicar determinado desconto segundo uma tabela de descontos N. 1 2 3 4 5 6 0 Menu CAMISOLA CALA CAMISA CASACO SAPATOS MEIA SAIR
47
O Opo 1 2 3 4 5 0
Escreva um programa que leia a velocidade do vento aferida durante uma tempestade e apresente ao utilizador a classificao do furaco caso a tempestade t t d possa ser classificada como tal.
48
49
51
52
Caracteres ASCII
A ASCII (American Standard Code for Information Interchange), que em portugus t significa i ifi "Cdi "Cdigo P d Americano Padro A i para o Intercmbio I t bi de d Informao") uma codificao de caracteres de sete bits baseada no alfabeto ingls. ingls Os cdigos ASCII representam texto em computadores, computadores equipamentos de comunicao, entre outros dispositivos que trabalham com texto. texto Exemplo de uma tabela: http://www.computerhope.com/ascii.gif
54
Caracteres ASCII
/*Exemplo de um programa que converte um nmero decimal em cdigo ASCII*/ #include <stdio.h> stdio.h main() { int numero; printf("Introduza o numero a converter para ASCII!\n"); scanf("%d", & numero); printf("%d=%c",numero,numero); system( PAUSE ); system("PAUSE"); }
55
Ciclo for
56
Ciclo for
A instruo for, for adapta-se adapta se particularmente a situaes em que o nmero de interaces conhecido partida. A sintaxe : for (inicializaes; condio; ps-instruo) ps instruo) instruo;
57
Ciclo for
Consideremos o programa que escreve 10 nmeros de 1 a 10 no monitor com o ciclo while:
#include <stdio.h> main() { int numero=1; while (numero<=10) { printf(%d\n,i); i=i+1; } system("PAUSE"); }
58
Ciclo for
Vejamos agora como fica com o ciclo for: for :
#include <stdio.h> <stdio h> main() { int i; for( i=1; i<=10; i++) printf(%d\n,i); system("PAUSE"); }
59
Exerccio 45-C:
Desenvolva um p programa g em C q que p permita calcular a mdia das notas de um nmero de alunos introduzido pelo utilizador. Nota: Utilize o ciclo for
60
Exerccio 46-C:
Faa um programa que calcula a tabuada de um nmero introduzido pelo utilizador.
61
Exerccio 47-C:
Elabore um programa que permita introduzir 10 notas de alunos com uma escala de 0 a 20 em que as notas acima de 10 so positivas e abaixo negativas. O programa dever devolver o nmero de negativas e positivas introduzidas. introduzidas
62
63
rand
Sintaxe
#include <time.h> srand ( time(NULL) ); alea=rand()%100;
64
Exemplo
#include <stdio.h> #include <stdlib.h> #include <time.h> int i t main i () { int alea; srand ( time(NULL) ); alea=rand()%100; printf ( ("Um Um numero aleatorio e %d\n %d\n", alea); system("PAUSE"); return 0; }
65
Exerccio 48-C:
Elabore um j jogo g q que g gera um nmero aleatrio entre 0 e 100 em que o utilizador ter de descobrir o nmero gerado atravs das indicaes do computador que dever mostrar os avisos: O nmero maior sempre que o nmero introduzido seja maior do que o introduzido O nmero menor sempre que o nmero introduzido seja j menor q que o introduzido Se o nmero for igual dever mostrar o seguinte: PARABNS Acertou A em X tentativas i em que X o nmero de tentativas.
66
Funes
67
Funes
Embora ainda sem saber como escrever uma funo, j as temos utilizado ao longo dos nossos programas. So exemplos as funes printf, scanf, getchar. absolutamente indispensvel que um programador de C domine completamente a escrita de programas de forma modelar, atravs de procedimentos e tambm funes funes.
68
Funes
Escreva o seguinte programa, utilizando o ciclo for que permite colocar uma linha de 20 asteriscos no ecr. p
#include <stdio.h> main () { int i; for (i=1; i<20; i++) putchar ('*'); getchar(); }
69
Funes
#include <stdio.h> linha() { int i; for (i=1; i<20; i++) putchar ('*'); printf("\n"); } main () { linha(); printf (" Funcao Linha\n"); linha(); g getchar(); (); }
70
Vectores
Um vector (vulgarmente conhecido por Array) no mais que um conjunto de elementos consecutivos, todos do mesmo tipo, que podem ser acedidos individualmente a partir de um nico nome.
Exemplo de um vector que representa as comisses de um empregado ao longo do ano:
100
Janeiro
200
Fevereiro
300
Maro
150
Abril
450
Maio
120
Junho
300
Julho
320
Agosto
120
Setembro
230
Outubro
400
Novembro
200
Dezembro
71
Vectores
Como declarar variveis do tipo vector? Sintaxe: Tipo p nome_varivel [n de elementos] Em cdigo: int comissoes [12]; int tipo de dados do vector (neste caso inteiros) comissoes nome do vector [12] nmero de posies do vector (neste caso 12)
100
Janeiro
200
Fevereiro
300
Maro
150
Abril
450
Maio
120
Junho
300
Julho
320
Agosto
120
Setembro
230
Outubro
400
Novembro
200
Dezembro
72
Vectores
Como introduzir valores nas posies do vector? Vamos colocar o valor 300 no ms de Maro: comissoes [3] = 300; Um caso mais prtico: printf ("Qual a comissao do ms de Maro?\n"); scanf("%d",& marco); comissao[3]=marco;
300
Janeiro Fevereiro Maro Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro
73
Vectores
Mostrar valores das posies do vector: printf ( p (A comisso do ms de Maro : %d\n, , comissao [ [3]); ]);
300
Janeiro Fevereiro Maro Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro
74
Vectores
Efectuar clculos com as posies do vector: Se considerar-mos que a comisso do ms de Abril o dobro da comisso de Maro, como a representamos no vector? comissao[4] = comissao[3] * 2;
300
Janeiro Fevereiro Maro
600
Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro
76
Vectores de caracteres
Tambm podemos utilizar vectores de caracteres: Exemplo de um vector que permita a introduo das vogais: char vogal g [5]; vogal [0] = a; vogal [1] = e; vogal [2] = i; vogal [3] = o; vogal [4] = u;
a
vogal [0]
e
vogal [1]
i
vogal [2]
o
vogal [3]
u
vogal [4]
Os ndices de um vector variam entre 0 e n-1, em que n o nmero de ndices que queremos dimensionar o vector. vector
77
Exerccio 49-C
Escreve um programa que realize a leitura dos salrios pagos a um individuo durante um ano. Em seguida dever mostrar os valores mensais e o total anual.
Nota: Utilize um vector
78
Exerccio 50-C
Escreve um programa que realize a leitura das notas de 6 disciplinas de um aluno e que no final devolva as notas de cada disciplina e a sua mdia.
Nota: Utilize um vector
79
Vectores
E quando a dimenso do vector definida pelo utilizador? p
main() { i t i, int i n, notas; t printf ("Quantas notas quer inserir?\n"); scanf("%d",& n); int vector[n]; for (i=0; i<n; i++) { printf ("Quais as notas?\n"); scanf("%d",& vector[i]); }
Formador: Henrique Fidalgo 80
#include <stdio.h> #include <stdlib.h> main() { int i, n, notas; printf ("Quantas notas quer inserir?\n"); inserir?\n ); scanf("%d",& n); int vector[n];
for (i=0; i<n; i++) { printf ("Quais as notas?\n"); scanf("%d",& vector[i]); } for (i=0; i<n; i++) { printf ("Notas\n %d\n", vector[i]); } system("PAUSE"); system( PAUSE ); return 0; }
81
Exerccio 51-C
Durante uma corrida de automveis com N voltas de durao foram anotados para um piloto, na ordem, os tempos registados em cada volta. Elabore um programa em C para ler os tempos das voltas e calcular: Tempo mdio das voltas; Mostrar todos os tempos das voltas
Nota: Utilize um vector
82
83
84
x x
O
85
char galo[3][3]
x x
O O
86
x x
O O
87
88
89
90
Exerccio 52-C
Elabore um programa que permita introduzir o ndice da disciplinas:
P Portugus I Ingls M Matemtica E Educao Fsica As notas das respectivas disciplinas e a mdia das mesmas mesmas.
E nota
91