Técnicas de Programação I Conceitos básicos C/C++ Material baseado nas aulas da Profa. Isabel Harb Manssour http://www.inf.pucrs.br/~manssour/laproi, entre outros materias Estrutura de Seleção: Comando Seletivo Seleção com opções mutuamente exclusivas: CASO <variável_condicional > : <expressão_lóg_1> ENTÃO : <bloco de comandos> <expressão_lóg_2> ENTÃO : <bloco de comandos>. SENÃO : <bloco de comandos> 1
Exemplo Construir um algorítimo que mostre o menu de opções abaixo, receba a opção escolhida pelo usuário e os dados associados a cada opção (dois números inteiros), execute a operação associada a opcão do usuário, e apresente o resultado: Menu de Opções: 1. Somar 2. Subtrair 3. Multiplicar 4. Dividir C++: Comandos Seletivo switch ( ) Definição do do bloco do do switch switch (switch_variável) { O switch só só testa testa igualdade. case <expression_1> :: lista de de comandos_1; break ;; case <expression_2> lista de de comandos_2; break;... a declaração default será será executada se se default: nenhuma correspondência for for encontrada. lista de de comandos; //end switch 2
Switch: Exemplo switch (val) { case 1: 1: cout << << val valé igual a 1 1 ;; break ;; case 2: 2: cout << << val valé igual a 2 2 ;; break ;; default :: cout << << val valé diferente de de 1 e 2 ;; Switch Efeito: Avalie a expressão do switch. Vá para: o case que é igual a expressão avaliada, o default se não existe nenhum case; termine o switch se não existe default. Termine o switch quando encontrar um break 3
Switch Importante O parâmetro do switch deve ser int ou char O valor após o case dever ser uma CONSTANTE Instrução break Quando executada, faz com que aconteça a saída imediata daquela estrutura (no caso, o comando switch) A execução do programa continua com a primeira instrução depois da estrutura A falta do break faz o controle passar ao próximo case, o que não é desejado Exercícios Escrever o algoritmo Calculadora em C++ 4
Comando de Repetição Permitem a repetição de um conjunto de instruções até que uma determinada condição seja satisfeita. Número Definido de Repetições: PARA Número Indefinido de Repetições: Enquanto Teste no início Repita Teste no final Estrutura PARA PARA <variável_controle> <valor_inicial> ATÉ <valor_final> FAÇA <Bloco de Comandos> FIM PARA Exemplo: PARA i 1 ATÉ 10 FAÇA RESULTADO i + 1; ESCREVA (RESULTADO); FIM PARA 5
C++: Comando for O comando for é usado para a execução repetitiva de um conjunto de códigos. Sintaxe: for ( inicialização ; condição ; incremento) { <bloco de comandos>; Inicialização: usada para inicializar a(s) variável(is). Condição : expressão relacional para determinar o término do laço. Incremento : define como as variáveis do laço serão atualizadas. Comando for: Exemplos Fatorial de um número: 4! = 4*3*2*1 = 24 int intfatorial=1, n = 4; 4; for (( int inti i = n ;; i i > 0 ;; i-- i-- )) fatorial *= *= i i ;; Encontrar os primeiros números divisores de 60: int intk=60, j; j; for (( j j = 2 ;; k%j = = 0 ;; j++) { cout << << j j << << é divisor de de << << k; k; 6
Comando for: Exemplos Qualquer uma das expressões do for pode estar faltando, mas todos os pontos-e-vírgulas têm de existir. Exemplo: Cálculo da soma dos inteiros de um a dez. i=1; soma=0; for( ;; i i <= <= 10 10 ;; i++) soma+=i; E se o teste não existir? Teste sempre verdadeiro i=1; soma=0; for( ;; i i <= <= 10 10 ;; )) soma += += i++ ;; Comando for Um for pode ser usado como parte de uma declaração de um if, if-else, outro for. Exemplo: if ( <condição> ) { <bloco de comandos>; for ( ;<condição>; ) { <bloco de comandos>; for ( ;<condição>; ) { <bloco de comandos>; for ( ;<condição>; ) { <bloco de comandos> O for mais interno é executado primeiro 7
Comando for O comando for deve ser usado sempre que: Soubermos exatamente quantas vezes o laço deve ser repetido O teste deva ser feito antes da execução de um bloco de comandos Houver casos em que o laço não deva ser repetido nenhuma vez Observações: Os comandos de inicialização são executados apenas uma vez O contador é incrementado/decrementado sempre ao final da execução do bloco O teste é feito sempre antes do início da execução do bloco de comandos Comando For Laço infinito for ( ; ; ) {... Duas ou mais variáveis, separadas por vírgula, podem ser incrementadas/decrementas e/ou inicializadas ao mesmo tempo for (x=0, y=0; x+y<10; ++x) {... for (x=5, y=5; x+y>0; --x, --y) {... 8
Exercícios Faça um programa que leia a nota final de vinte alunos, calcule a média aritmética das notas dos alunos, e mostre o valor da média da turma. Um funcionário de uma empresa de uma empresa recebe aumento salarial anualmente. Sabe-se que: Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00; Em 1996 o funcionário recebeu um aumento de 1,5% sobre o seu salário inicial; A partir de 1997 (inlcusive), os aumentos salariais sempre corresponderam ao 150% do percentual do ano anterior. Faça um programa C++ que determine o salário atual desse funcionário Escreva um programa que apresente os números entre 1000 e 1999 que são divisíveis por 5. 9