Apostila - Programa--o C++
169 pág.

Apostila - Programa--o C++


DisciplinaAnálise Textual9.567 materiais293.978 seguidores
Pré-visualização50 páginas
da expressão condicional como um todo. Se exp1 for zero, 
exp3 é avaliada e será o valor da expressão condicional como um todo. 
Na expressão: 
 max = (a>b)?a:b 
a variável que contém o maior valor numérico entre a e b será atribuída a max. 
 
 Outro exemplo: 
 abs = (x > 0) ? x : -x; // abs é o valor absoluto de x 
 
 A expressão 
 printf(\u201c %d é uma variável %s !\u201d, x, ((x%2)?\u201dImpar\u201d:\u201dPar\u201d); 
imprime ímpar se x for um número \u201címpar\u201d, caso contrário imprimirá \u201cpar\u201d. 
4.8 Precedência 
 O operador ! é o de maior precedência, a mesma que a do operador unário. A tabela seguinte 
mostra as precedências dos operadores: 
 
Operadores Tipos 
! - ++ -- Unários; não lógicos e menos aritméticos 
* / % Aritméticos 
+ - Aritméticos 
< > <= >= Relacionais 
== != Relacionais 
&& Lógico & 
|| Lógico OU 
= += -= *= /= %= Atribuição 
4.9 Exercícios: 
4.1 Qual é o resultado da seguinte expressão: 
int a = 1, b = 2, c = 3; 
int result = ++a/a&&!b&&c||b--||-a+4*c>!!b; 
 
4.2 Escreva uma expressão lógica que resulte 1 se o ano for bissexto e 0 se o ano não for 
bissexto. Um ano é bissexto se for divisível por 4, mas não por 100. Um ano também é bissexto se 
for divisível por 400. 
 
4.3 Faça um programa que solicite ao usuário o ano e imprima \u201cAno Bissexto\u201d ou \u201cAno 
Não-Bissexto\u201d conforme o valor da expressão do exercício anterior. Utilize o operador condicional. 
 
4.4 Num cercado, há vários patos e coelhos. Escreva um programa que solicite ao usuário o 
total de cabeças e o total de pés e determine quantos patos e quantos coelhos encontram-se nesse 
cercado. 
Curso de Linguagem Computacional C/C++ 
________________________________________________________________________________________________ 
Sistemas Industriais Inteligentes \u2013 DAS \u2013 CTC \u2013 UFSC 29 
 
4.5 Uma firma contrata um encanador a 20.000,00 por dia. Crie um programa que solicite o 
número de dias trabalhados pelo encanador e imprima a quantia líquida que deverá ser paga, 
sabendo-se que são descontados 8% para imposto de renda. 
 
4.6 Faça um programa que solicite um caractere do teclado por meio da função getch(); se 
for uma letra minuscula imprima-a em maiusculo, caso contrário imprima o próprio caracter. Use 
uma expressão condicional 
 
4.7 Faça um programa que solicite ao usuário uma sequência binária com 16 bits. 
Transforme esta sequência de 0 e 1 em um número inteiro. Depois manipule este número inteiro 
para verificar se os bits 0, 3, 7, 14 estão habilitados (valor igual a 1). Peça a usuário se ele deseja 
modificar algum bit específico da palavra. Se ele quiser, modifique o bit desejado para o valor por 
ele fornecido. 
Curso de Linguagem Computacional C/C++ 
________________________________________________________________________________________________ 
Sistemas Industriais Inteligentes \u2013 DAS \u2013 CTC \u2013 UFSC 30 
5 Laços 
Em C existem 3 estruturas principais de laços: o laço for, o laço while e o laço do-while. 
5.1 O Laço For 
O laço for engloba 3 expressões numa única, e é útil principalmente quando queremos 
repetir algo um número fixo de vezes. 
Sintaxe: 
for(incializacao ; teste ; incremento) 
 instrução; 
 
Os parênteses, que seguem a palavra chave for, contêm três expressões separadas por ponto-
e-vírgulas, chamadas respectivamente de : \u201cexpressão de inicialização\u201d, \u201cexpressão de teste\u201d e 
\u201cexpressão de incremento\u201d. As 3 expressões podem ser compostas por quaisquer instruções válidas 
em C. 
\u2022 Incialização: executada uma única vez na inicialização do laço. Serve para iniciar 
variáveis. 
\u2022 Teste: esta é a expressão que controla o laço. Esta é testada quando o laço é inciado ou 
reiniciado. Sempre que o seu resultado for verdadeiro, a instruções do laço serão 
executadas. Quando a expressão se tornar falsa, o laço é terminado. 
\u2022 Incremento: Define a maneira como a variável de controle do laço será alterada cada vez 
que o laço é repetido (conta++). Esta instrução é executada, toda vez, imediatamente 
após a execução do corpo do laço. 
 
 for( conta = 0; conta < 10; conta++ ) 
 printf(\u201cconta=%d\n\u201d, conta); 
 
Exemplo: 
/*Laco For 1*/ 
#include <stdio.h> 
 
void main() 
{ 
 int conta; 
 for(conta = 0; conta < 10; conta += 3) 
 printf(&quot;conta=%d\n&quot;, conta); 
} 
 
Qualquer uma das expressões de um laço for pode conter várioas instruções separadas por 
vírgulas. A vírgula é na verdade um operador C que significa \u201cfaça isto e isto\u201d. Um par de 
expressões separadas por vírgula é avaliado da esquerda para a direita. 
 
/* Forma Flexivel do Laço for */ 
#include <stdio.h> 
void main() 
{ 
 int x, y; 
 for( x=0, y=0; x+y < 100; x = x+1, y++) 
 printf(&quot;%d\n&quot;, x+y); 
} 
Curso de Linguagem Computacional C/C++ 
________________________________________________________________________________________________ 
Sistemas Industriais Inteligentes \u2013 DAS \u2013 CTC \u2013 UFSC 31 
Podemos usar chamadas a funções em qualquer uma das expressões do laço. 
Qualquer uma das três partes de um laço for pode ser omitida, embora os pontos-e-vírgulas 
devam permanecer. Se a expressão de inicialização ou a de incremento forem omitidas, elas serão 
simplesmente desconsideradas. Se a condição de teste não está presente é considerada 
permanentemente verdadeira. 
O corpo do laço pode ser composto por várias instruções, desde que estas estejam 
delimitadas por chaves { }. O corpo do laço pode ser vazio, entretanto o ponto-e-vírgula deve 
permanecer para indicar uma instrução vazia. 
Quando um laço está dentro de outro laço, dizemos que o laço interior está aninhado . Para 
mostrar esta estrutura preparamos um programa que imprime tabuada. 
 
/* tabuada */ 
#include <stdio.h> 
 
void main() 
{ 
 int i,j,k; 
 printf(&quot;\n&quot;); 
 for(k=0; k<=1; k++) 
 { 
 printf(&quot;\n&quot;); 
 for(i=1; i<5; i++) 
 printf(&quot;Tabuada do %3d &quot;, i+4*k+1); 
 printf(&quot;\n&quot;); 
 for(i=1; i<=9; i++) 
 { 
 for(j = 2+4*k; j<=5+4*k; j++) 
 printf(&quot;%3d x%3d = %3d &quot;, j, i, j*i); 
 printf(&quot;\n&quot;); 
 } 
 } 
} 
5.2 O Laço While 
O laço while utiliza os mesmos elementos que o laço for, mas eles são distribuídos de 
maneira diferente no programa. 
Sintaxe: 
while(expressão de teste) 
 instrução; 
 
Se a expressão de teste for verdadeira (diferente de zero), o corpo do laço while será 
executado uma vez e a expressão de teste é avaliada novamente. Este ciclo de teste e execução é 
repetido até que a expressão de teste se torne falsa (igual a zero), então o laço termina. 
 Assim como o for, o corpo do laço while pode conter uma instrução terminada por (;), 
nenhuma instrução desde que possua um (;) e um conjunto de instruções separadas por chaves { }. 
 Abaixo temos um exemplo, onde um laço while substítuiu um antigo laço for. 
/*Laco While 1*/ 
#include <stdio.h> 
 
void main() 
{ 
 int conta = 0; 
Curso de Linguagem Computacional C/C++ 
________________________________________________________________________________________________ 
Sistemas Industriais Inteligentes \u2013 DAS \u2013 CTC \u2013 UFSC 32 
 while(conta < 10) 
 { 
 printf(&quot;conta=%d\n&quot;, conta); 
 conta++; 
 } 
} 
Quando se conhece a priori o número de loops que o laço deve fazer, recomenda-se o uso do 
laço for. Caso o número de iterações dependa das instruções executadas, então se recomenda o uso 
do laço while. 
Os laços while podem ser aninhados como o laço for. C permite que no inteior do corpo de 
um laço while, você possa utilizar um outro laço while. 
5.3 O Laço Do-While 
O laço Do-While cria um ciclo repetido até que a expressão de teste seja falsa (zero). Este 
laço é bastante similar ao laço while. 
A diferença é que no laço do-while o teste de condição é avaliado depois do laço ser 
executado. Assim, o laço do-while é sempre executado pelo menos uma vez. 
Sintaxe: 
do 
{ 
 instrução; 
} while(expressão de teste); 
 
Embora as chaves não sejam necessárias quando apenas uma instrução está presente no 
corpo do laçop do-while, elas são geralmente usadas para aumentar a legibilidade. 
Exemplo usando os laços while e do-while: 
 
/* Programa de Exemplo do laco Do-While