Вы находитесь на странице: 1из 48

APOSTILA DE ALGORITMOS E ESTRUTURAS DE DADOS LINGUAGEM C++

APOSTILA DE ALGORITMOS E ESTRUTURAS DE DADOS LINGUAGEM C++ Profº. Ms. André Mendes Garcia

Profº. Ms. André Mendes Garcia

SUMÁRIO

1 – INTRODUÇÃO

1

1.1 – Definição de Algoritmo

1

1.2 – Histórico da Linguagem C++

2

1.3 – Compilação

3

2 – MEU PRIMEIRO PROGRAMA

5

2.1

– Comentários

7

3 – VARIÁVEIS

9

3.1 – Declaração de Variáveis

10

3.2 – Constantes

11

4 – SAÍDA DE DADOS

12

4.1 – A Função printf( )

12

4.2 – A Função putchar()

14

4.3 – A Função puts()

15

4.4 – O Objeto cout

15

5 – ENTRADA DE DADOS

17

5.1 – A Função scanf()

17

5.2 – A Função gets()

19

5.3 – As Funções getch() e getche()

19

5.4 – O Objeto cin (C in)

19

6 - OPERADORES

21

6.1 – Operadores Aritméticos

21

6.2 – Precedência dos Operadores Aritméticos

24

6.3 – Operadores Aritméticos de Atribuição

25

6.4 – Operadores Relacionais

26

6.5 – Operadores Lógicos

28

7 – ESTRUTURAS DE PROGRAMAÇÃO

30

7.1 – Estrutura Condicional ( if )

30

7.2 – Estrutura Condicional ( switch )

36

7.3 – Estrutura de repetição ( while )

39

7.4 – Estrutura de repetição ( for )

40

7.5 – Estrutura de repetição ( do while )

41

8.1

– Exercícios de Estrutura Seqüencial

42

8.2 – Exercícios de Estrutura condicional IF

42

8.3 – Exercícios de Estrutura condicional Switch

43

8.4 – Exercícios de Repetição While

44

8.5 – Exercícios de Repetição do- While

44

8.6 – Exercícios de Repetição FOR

45

1 – INTRODUÇÃO

O presente tutorial destina-se a estudantes e profissionais de TI (Tecnologia da Informação) que precisam aprender ou revisar seus conhecimentos básicos em lógica de programação (algoritmos) e também específicos da linguagem C++. A linguagem C++ foi escolhida por ser uma linguagem de alto nível, com facilidades para o uso em baixo nível (programação do hardware) e utilizar o paradigma da POO (Programação Orientada a Objetos). Há décadas esta linguagem vem sendo amplamente utilizada no meio acadêmico e comercial tendo inúmeras IDE´s (Ambiente de Programação Integrado) desenvolvidas, as quais possibilitam grandes facilidades em utilizar a linguagem comercialmente. Dentre as IDE´s mais famosas destacam-se o C++ Builder da Borland e o Visual C++ da Microsoft. Atualmente várias linguagens comerciais são bastante parecidas com C++, tais como o C# .NET, Java, dentre outras, assim o profissional de TI familiarizado com a linguagem C++ pode facilmente aprender essas outras linguagens.

1.1 – Definição de Algoritmo

Um algoritmo nada mais é que uma seqüência de passos ordenados de forma a resolver um determinado problema. Um exemplo bastante simples de algoritmo é uma receita de bolo, a qual contém uma seqüência lógica de passos necessários para a confecção do bolo. Analogamente, um software é um algoritmo, pois possui uma seqüência lógica de passos para resolver algum problema, só que neste quem irá executar o algoritmo é o computador.

1.2 – Histórico da Linguagem C++

A linguagem de progamação C / C++ foi originada da linguagem BCPL,

por Martin Richards, que “rodava” no computador DEC PDP-7, com sistema operacional unix (versão da época). Em 1970, Ken Thompson fez algumas melhorias na linguagem BCPL e a chamou de “B”. Em 1972, Dennis Ritchie e Ken Thompson fizeram várias melhorias na linguagem B e para dar um novo nome à linguagem, chamaram-na de “C” (como sucessor de “B”). Sua primeira

utilização importante foi a reescrita do sistema operacional UNIX que até então era escrito em assembly (dá para imaginar ??).

A linguagem C não foi um sucesso imediato após a sua criação, ficando

restrita a alguns laboratórios. Em 1978 (um ano histórico para os programadores C), é lançado um livro famoso por Brian Kernigham e Dennis Ritchie. Esse livro serviu de tutorial para muita gente e mudou a história da programação em C. De fato, essa primeira versão da linguagem C é até hoje conhecida como “C Kernigham e Ritchie” ou simplemeste “C K&R”. Em 1981, a IBM lança o IBM PC, iniciando uma família de computadores de muito sucesso. A linguagem C estava no lugar certo e na hora certa para casar-se com o fenômeno dos computadores pessoais. Logo foram surgindo inúmeros compiladores para PC e a linguagem C esta livre do seu confinamento inicial no sistema operacional Unix. Conforme a tecnologia de software foi se desenvolvendo, o mercado

exigiu que se introduzissem mudanças na linguagem C, e muitas modificações foram pouco a pouco sendo introduzidas na linguagem. Uma modificação importante foi a padronização feita pelo American National Standards Institute (ANSI), em 1983, que criou uma linguagem conhecida como “C ANSI”.

O “C ANSI” deu origem ao “C++” e seus novos elementos principais são

as classes, objetos e a idéia ou paradigma de programação orientada a objeto (OOP), incluindo ainda todos os elementos da linguagem C. De uma forma geral, C/C++ não é amarrada a nenhuma plataforma (Máquina/Sistema Operacional), é estruturada, modular e orientada a objetos.

Apesar de ser uma linguagem de alto nível é conhecida também como “uma baixaria de alto nível”, ou seja, ela possibilita operações com dados naturalmente só disponíveis em assembler (linguagem de montagem de baixo

nível), permitindo assim que o programador “auxilie” o complilador na tarefa de gerar códigos muito otimizados.

1.3 – Compilação

Para que um computador possa executar um programa, este programa deve estar em linguagem de máquina. Programar nesta linguagem é uma tarefa bastante complicada, e dependendo da complexidade do programa é uma tarefa impossível. Para resolver esse problema, há as linguagens de programação como a linguagem C++. O processo de compilação consiste em transformar um programa feito em uma linguagem de programação em um programa em linguagem de máquina, a qual o computador compreende. Cada linguagem tem o seu compilador, que nada mais que um programa para fazer esta transformação. Desta forma, para executar os nossos programas em C++, precisaremos compila-los através do compilador C++. Como ilustra a figura abaixo.

#include <conio.h>

#include <stdio.h> void main()

{

clrscr(); printf("Hello World !"); getch();

}

{ clrscr(); printf("Hello World !"); getch(); } COMPILADOR C++ © ☺ X ╗ ═ !s ♥

COMPILADOR C++

printf("Hello World !"); getch(); } COMPILADOR C++ © ☺ X ╗ ═ !s ♥ Ú[ ☺┤

©X╗ ═!sÚ[☺┤ ═→ëû ëÿ t©@ Ä└╗p &ã•3Ý.Äì¥Þ♥┐Þð 6ê 6å 6ä Þ9•ï^â¹$wXǹrSïFïN♫♂╔}Ç~tã-G¸¸ÏâìvÌÒæ+ s♦♦♥☻F¬Ô´¬•ïF _^ïÕ]┬♀ Uïý3P vv© PPaPÞj ]┬♦ Uïýï^ÐÒüºû²BèF ï^ïNïV♠═!rÙPÞõÖ]├║♣ ;ös+ïÐÒÃçûï┌▒♦ËÒãç ♂└uÃFÛÃFýP ~¯ì¥j •ZY[├♠³ì¥j ë~³ï~³ïv¼ v³;¸s

Programa na linguagem C++ Nome do arquivo:

primeiro.cpp

Programa em linguagem de máquina Nome do arquivo:

primeiro.exe

Note que o arquivo em linguagem C++ tem a extensão cpp de C plus plus, já o arquivo em linguagem de máquina tem a extensão exe a qual indica que é um arquivo executável, ou seja, um programa que pode ser executado pelo computador.

2 – MEU PRIMEIRO PROGRAMA

Como tradição, começaremos a estudar essa poderosa linguagem com o programa “Hello World !”, mas antes de mais nada, o C é case sensitive, ou seja, na linguagem C há diferença entre letras maiúsculas e minúsculas. Outra observação a fazer é que todo comando a não ser estruturas, chaves e alguns outros comandos, deve ser seguido de ponto-e-vírgula “;”.

#include <conio.h> #include <stdio.h>

int main()

{

printf("Hello World !"); printf("\nEste é meu primeiro programa !"); printf("\n"); getch();

}

Após compilar o programa acima e executa-lo, o resultado será:

compilar o programa acima e executa-lo, o resultado será: Ou seja, o programa acima limpa a

Ou seja, o programa acima limpa a tela, imprime na tela do computador a frase “Hello World !”, pula uma linha e imprime a frase “Este é meu primeiro programa !”, pula de linha novamente e dá uma pausa até que o usuário do programa pressione alguma tecla.

Analisando o programa mais de perto, as duas primeiras linha do programa #include <conio.h> e #include <stdio.h> não são instruções em C++ e sim diretivas do pré-processador C++. O pré-processador C++ é um programa que examina o programa- fonte em C++ e executa nele certas modificações com base em instruções chamadas diretivas. Toda diretiva é iniciada pelo símbolo # e seu texto deve ser escrito em uma única linha. Se o texto for muito grande, pode-se terminar a linha com a barra invertida “\” e continuar em outra linha. A diretiva #include, provoca a inclusão de outro arquivo em nosso programa-fonte. Na verdade o compilador substitui a diretiva #include de nosso programa pelo conteúdo do arquivo indicado antes de o programa ser compilado. Em nosso primeiro exemplo <conio.h> é um arquivo de bilbioteca de funções, na qual contém a função clrscr(), que

limpa a tela, e <stdio.h> é uma outra biblioteca de funções que contém a função printf(), que imprime uma mensagem na tela. Como se pode notar, após as duas primeiras linhas, há uma estrutura da seguinte

forma:

void main()

{

}

Todo programa na linguagem C++ possui uma função principal chamada mai(), onde a palavra void que precede main significa que essa função não retorna valores. A chave aberta { indica o início do programa e a fechada } o término do programa. Abaixo segue a explicação completa do programa:

#include <conio.h> #include <stdio.h> void main() { system("cls"); printf("Hello World
#include <conio.h>
#include <stdio.h>
void main()
{
system("cls");
printf("Hello World !");
printf("\nEste é meu primeiro programa !");
printf("\n");
getch();
}
programa !"); printf("\n"); getch(); } Diretivas do pré-processador para incluir os arquivos

Diretivas do pré-processador para incluir os arquivos conio.h e stdio.h

Função principal do programa

Início do programa

Limpa a tela

Imprime na tela a frase “Hello World !”

Pula de linha, através do símbolo \n e imprime a frase “Este é meu primeiro programa !”

Pula de linha através do símbolo \n

Paula do programa até que o usuário pressione alguma tecla

Finaliza o programa

Note que as frases estão sempre entre aspas duplas “, isso porque o C++ considera as frases desta forma.

Exercício: Fazer um programa em C++ com a seguinte seqüência de passos:

1. Limpar a tela

2. Imprimir a mensagem “Este é o meu segundo programa !”,

3. Pular três linhas;

4.

Imprimir “Pressione algo para continuar

5. Dê uma pausa;

6. Limpar a tela

7. Imprimir “Eu”, pular de linha

8. Imprimir “Estou aprendendo”, pular de linha

9. Imprimir “Estrutura de programa”, pular de linha

10. Imprimir “Sequencial”

11. Pular cinco linhas

12. Imprimir “Pressione algo para encerrar

13. Pausar

Solução:

#include <conio.h> #include <stdio.h>

int main()

{

system("cls"); printf("Este é o meu segundo programa !"); printf("\n\n\n");

printf("Pressione algo para continuar

}

");

getch(); system("cls"); printf("Eu\n"); printf("Estou aprendendo\n"); printf("Estrutura de progrma\n"); printf("Sequencial"); printf("\n\n\n\n\n"); printf("Pressione algo para encerrar

");

getch();

2.1 – Comentários

Comentários são trechos dentro do programa que são ignorados pelo compilador, e servem para o programador / analista documentar trechos de seu programa de forma a facilitar sua manutenção. Inserir comentários em um programa é uma boa prática de programação, e um bom programador deve ter este costume.

Há dois tipos de comentários, comentário de linha e comentário contínuo. O comentário de linha é iniciado por duas barras // e qualquer coisa após essas barras até o final da linha o compilador ignora.

Exemplo de comentário de linha:

// este é um comentário de linha // Segundo programa -------------------------------------------- #include <conio.h> #include <stdio.h> int main()

{ // início do programa

printf("Este é o meu segundo programa !"); // imprime uma mensagem printf("\n\n\n"); // pula três linhas

printf("Pressione algo para encerrar getch(); // dá uma pausa

");

} // término do programa

O comentário contínuo é inicial por uma barra e um asterisco /* e terminado por um asterisco barra */. Tudo que tiver entre esses símbolos é ignorado pelo compilador.

Exemplo de comentário contínuo misturado com comentários de linha:

/* Este é um comentário Que pode conter várias linhas */ #include <conio.h> #include <stdio.h> int main()

{ /* início do programa */

printf("Este é o meu segundo programa !"); // imprime uma mensagem printf("\n\n\n"); // pula três linhas

printf("Pressione algo para encerrar getch(); // dá uma pausa

");

} // término do programa

3 – VARIÁVEIS

Uma variável é um espaço na memória RAM reservado para armazenar valores. Para se criar uma variável em C++ é necessário definir qual o tipo de dado que será armazenado. A tabela abaixo mostra os tipos de dados básicos em C++.

Tipo

Bits

Bytes

Intervalo

Uso

char

8

1

-128 a 127

Número muito pequeno e caracter

int

16

2

-32768 a 32767

Número inteiro, contador, controle de laços

float

32

4

3.4e-38 a 3.4e38

Número com casas decimais (precisão de 7 dígitos)

double

64

8

1.7e-308 a 1.7e308

Número com casas decimais (precisão de 15 dígitos)

void

0

0

Nenhum valor

Especificar função sem retorno

Com exceção de void, os tipos de dados básicos podem ser acompanhados por modificadores na declaração de variáveis. Os modificadores de tipo oferecidos por C++ são:

long

short

unsigned

Um modificador de tipo pode ser utilizado sem que seja especificado o tipo da variável. Quando isso é feito, o compilador assume, por default (padrão), que o tipo é int. Tipicamente o modificador long aumenta o número de bytes usados para o registro do número. Por conseqüência o intervalo de validade do número fica aumentado significativamente. O modificador unsigned, usado somente em inteiros, permite que um bit usado para guardar o sinal do número seja usado para guardar o valor do número. Em conseqüência disto o intervalo do número fica dobrado, porém somente permite o uso de números positivos. A tabela abaixo mostra alguns tipos modificados:

Tipo

Bits

Bytes

Intervalo

unsigned char

8

1

0

a 255

Unsigned

16

2

0

a 65535

Short

16

2

-32768 a 32767

long

32

4

-2.147.483.648 a 2.147.483.647

unsigned long

32

4

0

a 4.294.967.295

long double

80

10

3,4E-4932 a 1,1E+4932

3.1 – Declaração de Variáveis

Como na maioria das linguagens de programação, para poder utilizar uma variável é necessário declará-la. Em C++ a declaração de uma variável basicamente coloca-se o tipo de dados que vai ser armazenado e o nome para variável, por exemplo:

que vai ser armazenado e o nome para variável, por exemplo: int nome_da_variavel; tipo de dado

int nome_da_variavel;

e o nome para variável, por exemplo: int nome_da_variavel; tipo de dado nome da variável O

tipo de dado

nome da variável

O nome de uma variável é muito importante, pois é através dele que se utiliza a variável. Os nomes de variáveis devem obedecer as seguintes regras:

1. Ser único, não se pode ter duas variáveis com o mesmo nome;

2. Não pode começar com números;

3. Não pode ter espaços e nem caracteres especiais, tais como acentuação e cedilha.

4. Não pode coincidir com alguma palavra reservada do C++, por exemplo, if, void, main, while, for, etc

Para se atribuir algum valor para uma variável, é necessário utilizar o operador de atribuição =, e para se recuperar seu valor, basta apenas Por exemplo, o programa abaixo atribui um valor à variável e imprime na tela.

#include <conio.h> #include <stdio.h> int main()

{

int x; // declaração da variável x = 5; // atribuindo o valor 5 para a variável x printf("O conteúdo da variável x é %d", x); getch();

}

Uma variável pode ser inicializada já em sua declaração, como mostra alguns exemplos abaixo:

Declaração

Descrição

int num;

Declara uma variável do tipo int chamada de num

int num, r;

Declara duas variáveis do tipo int

int num = 5

Declara uma variável já inicializando-a com o valor 5

int num, soma=0;

Declara duas variáveis sendo que uma está sendo inicializada e outra não

3.2 – Constantes

Constantes são como variáveis, porém seus valores são fixos, como o próprio nome sugere. Podemos utilizar duas formas de definir constantes em C++, como segue:

- Através da diretiva #define:

Exemplo: #define pi 3.14

- Através do modificador de acesso à variável const:

Exemplo: const float pi = 3.14

Exemplo de um programa utilizando os recursos acima:

/******************************************************************** Programa que lê o raio de um disco e imprime na tela sua área

*********************************************************************/

#include <conio.h> #include <iomanip.h> #define pi 3.14

// define clrscr() e getch() // define setprecision

int main()

{

clrscr() e getch() // define setprecision int main() { rea do circulo ‚: " << area;

rea do circulo ‚: " << area;

cin faz a entrada de dados

float raio, area; cout << "Informe o raio: "; cin >> raio; area = pi * raio * raio; cout << setprecision(2);

cout << "A

cout << "\nPressione alguma tecla para encerrar

getch();

setprecision define o número de casas decimais

";

}

getch(); setprecision define o número de casas decimais "; } getch espera até que alguma tecla

getch espera até que alguma tecla seja pressionada

4 – SAÍDA DE DADOS

As funções para saída de dados em C++ são: printf(), putchar(), puts(), cout. As três primeiras funções são nativas da linguagem C, e cout foi introduzida junto com a linguagem C++.

4.1 – A Função printf( )

Síntaxe: printf(“expressões de controle ou strings”, argumentos);

Exemplo:

printf(“Texto a ser impresso”); printf(“\nA média geral da sala é: %4.2d “, media); printf(“\nEntre %d aluno(s) a média é: %4.2f”, qde, media);

Note que os caracteres \n, %d, %4.2 são códigos de formatação de texto onde:

\n – Indica nova linha; %d indica que será impresso um argumento decimal; %4.2f indica que será impresso um número decimal com 4 espaços na tela sendo 2 para casa decimal.

Os códigos de formatação e de controle são:

Código

Descrição

\n

Nova Linha

\t

Tab

\b

Retrocesso

\”

Aspas dupla

\’

Aspas simples

\\

Barra

\f

Salta formulário

\0

Nulo

%c

Caracter simples

%d

Inteiro decimal

%e

Real em notação científica

%f

Real em ponto flutuante

%o

Inteiro em Octal

%s

Cadeia de caracteres

%u

Inteiro decimal sem sinal

%x

Inteiro em hexadecimal

Exemplos:

Ex:

int main()

{

printf("Este é o numero dois: %d",2); printf("%s está a %d milhões de milhas\ndo sol","Vênus",67);

}

Tamanho de campos na impressão:

Ex:

int main()

{

printf("\n%2d",350);

printf("\n%4d",350);

printf("\n%6d",350)

}

Para arredondamento:

Ex:

Int main()

{

printf("\n%4.2f",3456.78);

printf("\n%3.2f",3456.78);

printf("\n%3.1f",3456.78);

printf("\n%10.3f",3456.78);

}

Para alinhamento:

Ex:

Int main()

{

printf("\n%10.2f %10.2f %10.2f",8.0,15.3,584.13); printf("\n%10.2f %10.2f %10.2f",834.0,1500.55,4890.21);

}

Complementando com zeros à esquerda:

Ex:

main()

{

 

printf("\n%04d",21);

printf("\n%06d",21);

printf("\n%6.4d",21);

printf("\n%6.0d",21);

}

Imprimindo caracteres:

Ex:

main()

{

printf("%d %c %x %o\n",'A','A','A','A'); printf("%c %c %c %c\n",'A',65,0x41,0101);

}

A tabela ASCII possui 256 códigos de 0 a 255, se imprimirmos em formato

caractere um número maior que 255, será impresso o resto da divisão do número por 256;

se o número for 3393, será impresso A pois o resto de 3393 por 256 é 65.

4.2 – A Função putchar()

A função putchar() coloca apenas um caracter na tela na posição onde estiver o

cursor.

Exemplo:

Int main()

{

char ch; printf("digite uma letra minúscula : "); ch=getchar(); putchar(toupper(ch)); putchar('\n');

}

Este exemplo pede para o usuário digitar uma letra minúscula e o programa a

imprime em maiúscula através da função toupper().

4.3

– A Função puts()

A função puts() apresenta uma única string na tela por vez seguida de um caracter de nova linha. Ex:

main()

{

puts(“Frase de exemplo”); getch();

}

4.4 – O Objeto cout

Como foi comentado anteriormente, cout (pronuncia-se “C out”) é um objeto de uma classe de I/O predefinida em C++. Síntaxe:

cout << “expressão”

Exemplo:

cout << “O número de alunos é: “ << qde;

Manipuladores de Tamanho de Campos na Impressão do Objeto cout

O objeto cout permite estabelecer o tamanho de um campo para a impressão. Isto significa que podemos definir o número de colunas que serão ocupadas por um valor ou texto a ser impresso. Geralmente, a definição de tamanho de campos é usada para alinhamento e estética de um relatório. Os manipuladores de tamanho de campos estão definidos no arquivo “iomanip.h” e são os seguintes:

setw Seleciona o tamanho do próximo campo a ser impresso. setprecision Define o número de casas decimais a serem impressas para números em ponto flutuante. setfill Seleciona o caractere que deverá preencher as colunas em branco de um campo

Exemplo1:

int qde_maca = 5, qde_banana = 10; cout <<”\nQde. de maçãs:” << setw(12) << qde_maca; cout <<”\nQde. de bananas:” << setw(12) << qde_banana;

A saída será:

Qde. de maçãs:

5

Qde. de bananas

10

Exemplo2:

int qde_maca = 5, qde_banana = 10; cout << setfill(‘.’); cout <<”\nQde. de maçãs:” << setw(12) << qde_maca; cout <<”\nQde. de bananas:” << setw(12) << qde_banana;

A saída será:

Qde. de maçãs:

5

Qde. de bananas:

10

5 – ENTRADA DE DADOS

As funções de entrada de dados são: scanf(); gets(); getch(); getche(); cin.

Semelhante ao comando cout, o comando cin é específico da linguagem C++, e as outras

são nativas da linguagem C.

5.1 – A Função scanf()

Síntaxe:

scanf(“Expressão de controle”, argumentos);

A lista de argumentos deve consistir nos endereços de memória das variáveis. C

oferece um operador para tipos básicos chamado operador de endereço e é referenciado

pelo símbolo "&" que retorna o endereço da variável na memória RAM.

A memória do computador é dividida em bytes, e são numerados de 0 até o limite

da memória. Estas posições são chamadas de endereços. Toda variável ocupa certa

localização na memória, e seu endereço é o primeiro byte ocupado por ela.

Ex:

main()

{

int num; printf("Digite um número inteiro: "); scanf("%d",&num); printf("\nO número digitado é %d",num); printf("\nO endereço de memória é %u",&num);

}

Ex:

main()

{

int num1, num2; printf("Digite dois números inteiros: "); scanf("%d %d",&num1, &num2); printf("\nO 1º número digitado é %d e o 2º é %d",num1, num2);

}

Ex:

main()

{

float num; printf("Digite um número real: "); scanf("%f",&num); printf("\nO número é %4.2f",num); printf("\nO endereço é %u",&num);

}

Ex:

main()

{

int num1; float num2; printf("Digite dois números, o 1º inteiro e o 2º com casas decimais: "); scanf("%d %f",&num1, &num2); printf("\nO Primeiro número digitado é %d e o segundo é %f",num1, num2);

}

Para ler uma string com scanf não necessita de se colocar o operar & para passar

o endereço da variável porque uma string é um vetor de char e todo vetor em C é um

endereço para a primeira posição (como veremos mais adiante).

Ex:

char nome[30];

printf(“Digite seu nome:”);

scanf(“%s”, nome);

printf(“\nSeu nome é %s”, nome);

A saída será:

Digite seu nome: André Mendes

Seu nome é André

Note que não foi impresso todo nome, isto é porque a função scanf entende espaço

como um finalizador de string, semelhante ao objeto cin como veremos mais adiante.

Para resolvermos isto devemos utilizar a função gets().

5.2

– A Função gets()

A função gets lê uma string inteira, inclusive espaços, até que se pressione Enter.

Ex:

char nome[30]; printf(“Digite seu nome:”); gets(nome); printf(“\nSeu nome é %s”, nome);

5.3 – As Funções getch() e getche()

A saída será:

Digite seu nome: André Mendes

Seu nome é André Mendes

As funções getch() e getche() lêem apenas um caractere e não necessitam que

seja pressionando o Enter. Assim que qualquer letra tenha sido pressionada a função

encerra.

A

diferença entre e getch e getche é que getche apresenta a letra pressionada na

tela, enquanto que getch não apresenta o apresenta.

Ex:

main()

{

char ch; printf(“Digite um caracter: “); ch = getch(); printf(“\nO caracter que você digitou é %c”, ch);

}

5.4 – O Objeto cin (C in)

O objeto cin (pronuncia-se “C in”) manipula toda entrada do teclado por meio do

operador de extração >> que conecta a entrada de dados à variável que a conterá. As

definições ao uso de cin e >> estão no arquivo “iostream.h”.

Ex:

#include <iostream.h> int main()

{

cout << “\nDigite a sua idade em anos: “; int anos; cin >> anos; cout <<”\nA sua idade em dias é: “ << (anos * 365);

}

Ex:

#include <iostream.h>

int main()

{

cout << “\nDigite a sua idade em anos e seu peso: “; int anos; float peso; cin >> anos >> peso; cout <<”\nSua idade em dias é: “ << (anos * 365) << “ e seu peso é: “ << peso;

}

6 - OPERADORES

A linguagem C++ é rica em operadores, em torno de 50. Alguns são mais usados que outros, como é o caso do operador de atribuição ( = ) e dos operadores aritméticos.

6.1 – Operadores Aritméticos

Em C++ os operadores aritméticos estão divididos em duas categorias: Binários, que fazem operações entre dois operandos e os Unários, que fazem operações em apenas um operando.

Os operadores aritméticos binários em C++ são:

Símbolo Utilizado

Descrição

+

Soma

-

Subtração

*

Multiplicação

/

Divisão

%

Resto da divisão

Ex: Fazer um programa programa que apresente a soma entre dois números:

int main()

{

printf("A soma entre dois números é %d", 3 + 4); getch();

}

Ex: Fazer um programa que apresente a soma de duas variáveis:

int main()

{

int A, B;

A = 3;

B = 4;

printf("A soma entre dois números é %d", A + B); getch();

}

Ex: Fazer um programa que peça para o usuário digitar dois números e apresente a soma destes números:

int main()

{

int A, B; printf("Digite dois números: "); scanf("%d %d",&A, &B); printf("A soma entre dois números é %d", A + B); getch();

}

Ex: Fazer um programa que peça para o usuário digitar dois números e apresente a soma, subtração, multiplicação e o resto da divisão entres os números digitados:

int main()

{

int A, B; printf("Digite dois números: "); scanf("%d %d",&A, &B); printf("A soma entre dois números é %d", A + B); printf("A subração entre dois números é %d", A - B); printf("A multiplicação entre dois números é %d", A * B); printf("A divisão entre dois números é %d", A / B); printf("O resto da divisão entre dois números é %d", A % B); getch();

}

Ex: Fazer um programa para calcular o valor y da seguinte função do 2º grau:

y =

A* x

2 + B * x + C

int main()

{

 

int A, B, C, x, y;

x

= 5;

A

= 12;

B

= 7;

C

= 9;

y

= A*x*x + B*x + C;

printf("O valor de y para x igual a %d é %d: ", x, y);

getch();

}

Ex: Fazer um programa que dado o salário de um funcionário, aumente 15% e imprima o salário velho o reajuste e o novo salário.

int main()

{

float salario, salario_novo, reajuste;

printf("Digite seu salário: "); scanf("%f", &salario);

reajuste = salario * 0.15; // obtendo 15% do salario

salario_novo = salario + reajuste;

printf("\nO salário antigo era: %f",salario); printf("\nO reajuste é: %f",reajuste); printf("\nO salário novo é: %f",salario_novo);

getch();

}

Como dito antes, os operadores unários realizam operações em apenas uma variável, e servem para incrementar ou decrementar o valor 1. São eles:

Símbolo Utilizado

Descrição

++

Acrescenta 1 na variável

--

Decrementa 1 na variável

Ex: Fazer um programa que some 1 na variável x e subtraia 1 da variável y:

Solução com Operador Binário Solução com Operador Unário int main() int main() { { int
Solução com Operador Binário
Solução com Operador Unário
int main()
int main()
{
{
int x=10, y=10;
int x=10, y=10;
x = x + 1;
y = y - 1;
x++;
y--;
printf("\nO valore de x é%d",x);
printf("\nO valore de y é%d",y);
printf("\nO valore de x é%d",x);
printf("\nO valore de y é%d",y);
getch();
}
getch();
}

Note no exemplo anterior que:

x

= x + 1;

é

equivalente a

x++;
x++;

e

y

= y - 1;

é

equivalente a

y--;
y--;

Deve-se prestar atenção na precedência do operador, pois há diferença entre colocar o

operador antes ou depois da variável.

Ex:

Operador à Direita da Variável

Operador à Esquerda da Variável

x = 5; A = x++;

x = 5; A = ++x;

Neste caso o valor de A é 5, pois se atribui x a A e depois incrementa x, portanto A contém 5.

Neste caso x é incrementado para 6 e depois atribuído a A tendo o valor 6 também.

6.2 – Precedência dos Operadores Aritméticos

O nível de precedência dos operadores é avaliado da esquerda para a direita. Os

parênteses podem ser utilizados para alterar a ordem da avaliação. A precedência dos

operadores aritméticos é:

Precedência

Operadores

++ --

* / %

+ -

Ex:

Considerando:

int x=5, y=3, z=1, n;

na expressão:

n =

z

+ y * x;

O valor 16 será atribuído à variável n, pois o operador de multiplicação * tem precedência sobre o operador de soma +, isto faz com que a operação de multiplicação y * x seja executada antes da operação de soma.

Considerando agora a expressão:

n =

(z + y) * x;

O valor 20 será atribuído à variável n, pois as expressões entre parênteses são executadas em primeiro lugar.

6.3 – Operadores Aritméticos de Atribuição

Os operadores aritméticos de atribuição combinam as operações aritméticas com atribuição. São cincos os operadores aritméticos de atribuição, como mostra a tabela abaixo:

Exemplos:

+=

-=

*=

/=

%=

i

+= 2;

equivale a

i

= i

+ 2;

k

*= y+1;

equivale a

k

= k * (y+1);

j

/= 2.5;

equivale a

j

= j / 2.5;

p

%= 5;

equivale a

p

= p % 5;

d

-= 3;

equivale a

d

= d – 3;

Ex: Fazer um programa que peça para o usuário digitar quatro notas e o programa deverá imprimir a média. Lembrando, para se calcular esta média, deve-se somar todas as notas digitadas e dividir por 4.

Com Operadores Aritméticos Com Operadores Aritméticos de Atribuição Int main() Int main() { { float
Com Operadores Aritméticos
Com Operadores Aritméticos de Atribuição
Int main()
Int main()
{
{
float nota, media=0;
float nota, media=0;
printf("Digite a primeira nota: ");
scanf("%f", &nota);
media = media + nota;
printf("Digite a primeira nota: ");
scanf("%f", &nota);
media += nota;
printf("Digite a segunda nota: ");
scanf("%f", &nota);
media = media + nota;
printf("Digite a segunda nota: ");
scanf("%f", &nota);
media += nota;
printf("Digite a terceira nota: ");
scanf("%f", &nota);
media = media + nota;
printf("Digite a terceira nota: ");
scanf("%f", &nota);
media += nota;
printf("Digite a quarta nota: ");
scanf("%f", &nota);
media = media + nota;
printf("Digite a quarta nota: ");
scanf("%f", &nota);
media += nota;
media = media / 4;
media /= 4;
printf("\n\nA média é: %f", media);
printf("\n\nA média é: %f", media);
getch();
getch();
}
}

6.4 – Operadores Relacionais

O objetivo dos operadores relacionais é o de fazer comparações, e na linguagem C++ são eles:

Operador Relacional

Descrição

==

Igual

!=

Diferente

>

Maior

>=

Maior ou igual

<

Menor

<=

Menor ou igual

Há apenas dois possíveis resultados para uma expressão utilizando operadores relacionais: Verdadeiro ou Falso. Na linguagem C++ não existe um tipo de variável chamado “booleana”, como é encontrado em outras linguagens, entretanto, em C++ o valor falso corresponde ao valor inteiro 0 (zero). Qualquer valor diferente de zero é considerado um valor verdadeiro.

Exemplos:

Expressão

Resultado em C++

Significado

15

== 20

0

Falso

7 == 7

1

Verdadeiro

10

>= 10

1

Verdadeiro

10

> 10

0

Falso

90

> 1

1

Verdadeiro

90

>= 1

1

Verdadeiro

70

< 150

1

Verdadeiro

70

> 150

0

Falso

80

> 45

1

Verdadeiro

27

>= 27

1

Verdadeiro

27

> 27

0

Falso

13

== 13

1

Verdadeiro

13

!= 13

0

Falso

13

!= 8

1

Verdadeiro

6.5 – Operadores Lógicos

Os operadores lógicos também fazem comparações. A diferença entre comparações lógicas e relacionais está na forma como os operadores avaliam seus operandos. Na linguagem C++ são três os operadores lógicos, como é mostrado a seguir:

Operador

Significado

&&

lógico E, ou and em algumas linguagens

||

lógico OU, ou or em algumas linguagens

!

lógico NÃO, ou not em algumas linguagens

O operador && (E lógico) retorna um valor verdadeiro se seus operandos forem

todos verdadeiros, e falso caso apenas um de seus operandos for falso.

Tabela Verdade do Operador ( && )

Operandos

Expressão

A

B

A && B

Falso

Falso

Falso

Falso

Verdadeiro

Falso

Verdadeiro

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

O operador || (OU lógico) retorna um valor verdadeiro se pelo menos um de seus

operandos for verdadeiro, e só retorna falso caso todos seus operandos forem falsos.

Tabela Verdade do Operador ( II )

Operandos

Expressão

A

B

A II B

Falso

Falso

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

O objetivo do operador de negação ! (NÃO lógico) é o de inverter o resultado, ou seja, aplicado o operador ! a um valor verdadeiro, resulta num falso, e aplicado a um valor falso, resulta num verdadeiro.

Tabela Verdade do Operador ( ! )

Operando

Expressão

A

! A

Falso

Verdadeiro

Verdadeiro

Falso

7 – ESTRUTURAS DE PROGRAMAÇÃO

As estruturas de programação constituem a base fundamental para se construir algoritmos. Há basicamente três tipos de estruturas de programação: Seqüencial, Condicional e de Repetição. A estrutura seqüencial é a que utilizamos em todos os exemplos anteriores, onde todos os comandos são executados, sem exceção. Já nas estruturas condicionais, podemos fazer com que um bloco de comandos seja executado de acordo com uma condição, e esta condição é uma expressão lógica, resultante de uma operação com operadores relacionais, combinado ou não com operadores lógicos. Com as estruturas de repetição, é possível fazer com que um bloco de comandos seja executado várias vezes, também de acordo com uma expressão lógica.

7.1 – Estrutura Condicional ( if )

A estrutura condicional if, “se” em português, pode ser utilizada de forma simples ou combinada com a else, “senão” em português.

Sintaxe: if ( expressao_logica ) if (expressao_logica ) { { comandos; comandos 1; } }
Sintaxe:
if ( expressao_logica )
if (expressao_logica )
{
{
comandos;
comandos 1;
}
}
else
Comandos a serem
executados caso
{
Comandos a serem
executados caso
expressao_logica
seja VERDADEIRA
expressao_logica
seja VERDADEIRA
comandos 2;
}
Comandos a serem
executados caso
expressao_logica
seja FALSA

Ex.: (Utilizando a estrutura if simples): Pedir para o usuáriorio digitar um número inteiro e, imprimir a mensagem "Este número é negativo" se o número digitado for negativo:

int main()

{

int x;

cout << "Digite um número inteiro: "; cin >> x;

if(

{

x <

0

)

cout << "O número digitado é negativo !";

}

getch();

}

Ex.: (Utilizando a estrutura if else): Pedir para o usuáriorio digitar um número inteiro e, imprimir a mensagem "Este número é negativo" se o número digitado for negativo, caso contrário imprimir a mensagem: “Este número não é negativo !”:

int main()

 

{

 

int x;

 

cout << "Digite um número inteiro: "; cin >> x;

if(

x <

0

)

{

cout << "O número digitado é negativo !";

}

else

{

 

cout << "O número digitado NÃO é negativo !!";

 

}

getch();

 

}

Ex.: (Utilizando a estrutura if else aninhada): Pedir para o usuáriorio digitar um número inteiro e imprimir se o número é negativo, positivou ou igual a zero.

int main()

 

{

 

int x; cout << "Digite um número inteiro: "; cin >> x;

if(

x <

0

)

{

cout << "O número digitado é negativo !";

}

else if( x == 0 )

 

{

 

cout << "O número digitado é ZERO !!";

 

}

else

{

 

cout << "O número mero digitado é POSITIVO !!";

 

}

getch();

 

}

Ex.: Fazer um programa que peça para o usuário digitar um salário, e, se o salário for menor ou igual R$ 1000,00 calcule um reajuste de 25%,

senão, se o salário for maior que R$ 1000,00 E menor que R$ 1500,00 calcule um reajuste de 15%,

senão, se o salário for maior ou igual que R$ 1500,00 E menor que R$ 2000,00 calcule um reajuste de 10%,

senão,

calcule um reajuste de 5%

int main()

{

float salario;

cout << "Digite um salário: "; cin >> salario;

if( salario <= 1000 )

{

cout << "O reajuste é: " << salario * 0.25;

}

else if( salario > 1000 && salario < 1500 )

{

cout << "O reajuste é: " << salario * 0.15;

}

else if( salario >= 1500 && salario < 2000 )

{

cout << "O reajuste é: " << salario * 0.1;

}

else

{

cout << "O reajuste é: " << salario * 0.05;

}

getch();

} // fim do programa

Ex.: Fazer o mesmo programa anterior, só que agora crie uma variável para guardar o reajuste, imprimindo além do reajuste, o salário velho e novo:

int main()

{

float salario, reajuste;

cout << "Digite um salário: "; cin >> salario;

if( salario <= 1000 )

{

reajuste = salario * 0.25;

}

else

if( salario > 1000 && salario < 1500 )

{

reajuste = salario * 0.15;

}

else

if( salario >= 1500 && salario < 2000 )

{

reajuste = salario * 0.10;

}

else

{

reajuste = salario * 0.05;

}

cout << "\n\nO salário antigo era.: " << salario;

cout << "\n\nO reajuste é

:

" << reajuste;

cout << "\nO SALARIO NOVO É

:

" << salario + reajuste;

getch();

} // fim do programa

Ex.: Faça um programa que calcule o imposto a pagar sobre circulação de mercadorias e prestação de serviços ICMS, sendo que, o usuário deverá informar o valor da mercadoria ou serviço prestado e também a região do Brasil. Após o programa deverá calcular o imposto e apresentar. As regras para calcular o imposto são:

Região do Brasil

Alíquota

1 (Sudeste) OU 2 (Sul) OU 3 (Nordeste)

21%

Demais regiões

15%

int main()

{

float valor, icms; int regiao;

cout << "Informe o valor da mercadoria ou servico: "; cin >> valor;

cout << "Qual e a regiao do Brasil: "; cin >> regiao;

if( regiao == 1 || regiao == 2 || regiao == 3 )

{

icms = valor * 0.21;

}

else

{

icms = valor * 0.15;

}

cout << "\n\nO valor do ICMS e: " << icms;

getch();

}

7.2 – Estrutura Condicional ( switch )

O

uso

da

estrutura

condicional

switch

é

utilizada

quando

se

tem

muitas

alternativas para se comprar, e a utilização da estrutura if torna-se inviável.

Sintaxe:

utilização da estrutura if torna-se inviável. Sintaxe: Esta expressao Só pode ser tipo tipo int ou

Esta expressao Só pode ser tipo tipo int ou char

switch ( expressao

)

{

 

case constante1:

comandos; break; case constante2:

comandos; break; case constante3:

comandos; break; default: // é opcional comandos; break;

}

Este comando só pode fazer comparações com valores inteiros (int) ou do tipo caracteres (char). Desta forma a expressao deve ter um desses tipos de dados. A execução deste comando segue os seguintes passos:

1 – A expressão é avaliada

2 – Se o resultado da expressão for igual a uma das constantes, então a execução começará a partir do comando associado a essa constante e prossegue com a execução de todos os comandos até o fim do switch, ou até que se encontre uma intrução break.

3 – Se o resultado da expressão não for igual a nenhuma das constantes e já tiver sido incluída no comando switch a opção default, o comando associado ao default será

executado. Caso contrário, isto é, se a opção default não estiver presente, o processamento continuará a partir do comando seguinte ao switch. O comando break provoca a saída imediata do switch. Se não existir um break seguindo as instruções associadas a um case, o programa prosseguirá executando todas as instruções associadas aos case abaixo.

Ex.: Fazer um programa para ler do usuário um número inteiro referente ao dia da semana (de 1 a 7). Imprima por extenso o dia da semana, e, caso o usuário digite um número diferente de 1 a 7, imprima dia da semana inválido.

int main()

{

int dia; cout << "Digite o n£mero do dia da semana: "; cin >> dia;

switch( dia )

{

case 1:

cout << "DOMINGO"; break; case 2:

cout << "SEGUNDA-FEIRA"; break; case 3:

cout << "SEGUNDA-FEIRA"; break; case 4:

cout << "QUARTA-FEIRA"; break; case 5:

cout << "QUINTA-FEIRA"; break; case 6:

cout << "SEXTA-FEIRA"; break; case 7:

cout << "SABADO"; break; default:

cout << "DIA DA SEMANA INVALIDO !!!"; break; } // fim do switch dia

getch();

} // fim do programa

Ex.: Fazer um programa para ler dois valores, digitados pelo usuário, e também uma operação aritmética a realizar sobre esses valores.

Int main()

{

float x, y, resultado; char opc;

cout << "\nDigite dois números: "; cin >> x >> y;

cout << "\n\nESCOLHA ENTRE UMA DAS OPÇÕES ABAIXO"; cout << "\n1 - Soma"; cout << "\n2 - Subtração"; cout << "\n3 - Multiplicação"; cout << "\n4 - Divisão"; cout << "\nOpc.: "; opc = getche();

switch ( opc )

{

case '1':

resultado = x + y; cout << "\n\nO resultado de " << x << " + " << y << " é: " break; case '2':

resultado = x - y; cout << "\n\nO resultado de " << x << " - " << y << " é: " break; case '3':

resultado = x * y;

cout << "\n\nO resultado de " << x << " * " << y << " é: " break; case '4':

<< resultado;

<< resultado;

<< resultado;

if( y != 0)

{

resultado = x / y; cout << "\n\nO resultado de " << x << " / " << y << " é: "

<< resultado;

}

else

{

resultado = 0; cout << "\n\n\aNÇO POSSÖVEL EFETUAR UMA DIVISÇO POR ZERO !!";

}

break;

default:

resultado = 0; cout << "\n\n\nVOCÊ ESCOLHEU UMA OPÇÃO INVÁLIDA !!"; break;

} // fim do switch

cout << "\n\nPressione qualquer tecla para encerrar getch();

} /// fim do programa

";

7.3 – Estrutura de repetição ( while )

O uso da estrutura de repetição while (enquanto) permite ao programador

especificar que um conjunto de comandos seja repetido enquanto alguma condição

(expressão lógica) for verdadeira.

Sintaxe:

while( expressão lógica )

{

 

Comando1;

Comando2;

}

Na primeira vez que a expressão lógica entre parênteses se tornar falsa, o while

não repetirá a execução do bloco, e a execução continuará com a sentença ou comando

que vem logo após o bloco do while.

Ex.: Fazer um programa para ler uma quantidade indeterminada de valores numéricos, até que o valor informado seja –1.

int main()

{

int n; cout << "Informe um numero (-1 para encerrar): "; cin >> n;

while( n != -1 )

{

cout << "Informe outro numero (-1 para encerrar): "; cin >> n;

}

} // fim do programa

7.4 – Estrutura de repetição ( for )

A estrutura for precisa de uma variável para controlar os loops (voltas ou

repetições). Em for, essa variável deverá ser iniciada, indicando seu critério de execução,

e forma de incremento ou decremento. Ou seja, for precisa de três condições. Vale

salientar que essas condições são separadas por ponto-e-vírgula (;).

Sintaxe:

for (inicio; expressão; incremento)

 

{

 

comando1;

comando2;

}

Início

Nela normalmente é utilizada uma variável com valor inicial , pois o script passará por

lá somente uma vez logo no começo do loop.

Expressão

Nela se utiliza uma verificação no inicio da cada loop retornando TRUE , a repetição

continuará , caso contrário a expressão é finalizada.

Incremento

aqui o script irá passar no final da execução, fazendo o que estiver proposto, seja

incrementar de 1 a 1 ou de 10 em 10 ou fazer o decremento ou algum outro tipo de

calculo.

EX.: Fazer um programa para ler 10 números, calcular a soma dos pares, a soma dos ímpares.

int main(int argc, char *argv[])

{ int n, sp=0, si=0, i;

for(i=1; i<=10; i++)

{

cout << "Informe o " << i << "o Numero: "; cin >> n;

if(

n

%

2 == 0

)

{

 

sp+= n;

 

}

else

{

si+= n;

}

} // for cout << "\n\nA soma dos pares é: " << sp; cout << "\n\nA soma dos impares é: " << si << "\n\n"; system("PAUSE"); return EXIT_SUCCESS;

}

7.5 – Estrutura de repetição ( do while )

O do-while é semelhante ao while, com exceção de que a condição do teste ocorre no final do ciclo. Tendo a condição do teste, no final, garante que o corpo do laço é executado pelo menos uma vez.

Sintaxe:

do

{

 

comando1;

comando2;

}

while (teste);

Ex.: Fazer um programa para imprimir e somar os 20 primeiros números naturais, e, no final apresentar a soma.

#include <iostream> using namespace std;

int main ()

{

int soma = 0, i=1;

do

{

cout << i << "\n"; soma = soma + i; i++; } while ( i <= 20 );

cout << "\n A soma é: " << soma;

return 0;

}

8 – EXERCÍCIOS

8.1 – Exercícios de Estrutura Seqüencial

1- Leia dois números, efetue e mostre o resultado, das quatro operações matemáticas básicas desses dois números.

2- Calcular o valor da função, para determinados valores de x e y f=x^2+3*x+y^3 / x*y -5*y -3*x^5 +1

3- Efetue a operação: z= (x+y) / (x-1);

4- Dados dois números inteiros calcular a divisão inteira e o resto da divisão entre eles.

5- Dado um número inteiro, fornecer como saída o próprio número, o dobro, o triplo e o quadrado desse número.

6- Ler uma temperatura em graus Fahrenheit e apresentá-la convertida em graus Centígrados. A fórmula de conversão é: C = (F - 32) * (5 / 9), onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.

7- Ler dois valores (variáveis A e B) e efetue a troca dos valores de forma que a variável A passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A. Apresentar os valores trocados.

8.2 – Exercícios de Estrutura condicional IF

1- Verificar se um dado número inteiro é par ou impar.

2- Ler dois valores inteiros determine e imprima o menor deles.

3- Ler três valores inteiros, determine e imprima o maior deles.

4- Dados três valores distintos, colocá-los em ordem crescente.

5- Efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500 mas menor ou igual a 1000, seu reajuste será de 10%, e caso seja ainda maior que 1000, o reajuste deverá ser de 5%.

6- O peso ideal de um homem conhecendo-se sua altura (h) é: (72.7*h)-58 , e de uma mulher é: (62.1*h)-44.7. Dado o sexo e a altura calcular o peso ideal.

7- Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:

bebe = 0 - 4 anos; infantil A = 5 - 7 anos; infantil B = 8 - 10 anos; juvenil = 11 - 17 anos; sênior = maiores de 18 anos.

8.3 – Exercícios de Estrutura condicional Switch

1-Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:

bebe = 0 - 4 anos; infantil A = 5 - 7 anos; infantil B = 8 - 10 anos; juvenil = 11 - 17 anos; sênior = maiores de 18 anos.

2-O peso ideal de um homem conhecendo-se sua altura (h) é: (72.7*h)-58, e de uma mulher é: (62.1*h)-44.7. Dado o sexo e a altura calcular o peso ideal.

3-Dados os valores de A e B numéricos e o valor C caractere, imprimir a operação

aritmética de A por B segundo o caractere C, caso contrário a mensagem : 'Operador não definido'. Exemplo :

Entrada

A = 3, B = 5 e C = '+'

a saída

deverá ser 3 + 5 = 8

Entrada

A = 3, B = 5 e C = 'L'

a saída

deverá ser

'Operador não definido'

4- Uma empresa decide presentear seus funcionários com um bônus de Natal, cujo valor

é definido do seguinte modo:

- os funcionários do sexo masculino com tempo de casa superior a 15 anos terão

direito a um bônus de 20% de seu salário;

- os funcionários com tempo de casa superior a 10 anos terão direito a um bônus de 25% de seu salário; e

- os demais funcionários terão direito a um bônus de 5.000,00.

5- Em uma eleição presidencial, com eleitores, existem quatro candidatos. Os votos são informados através de código. Os dados utilizados para a escrutinagem obedecem à seguinte codificação:

-

1, 2, 3, 4 = voto para os respectivos candidatos;

-

5 = voto nulo;

-

6 = voto em branco;

8.4

– Exercícios de Repetição While

1- Fazer um programa para ler uma quantidade indeterminada de valores numéricos, até que o valor informado seja -1.

2- Fazer um programa para ler 10 números, calcular a soma dos pares, a soma dos ímpares.

3- Fazer um programa parar ler um número, e logo em seguida o programa deverá imprimir a tabuada deste número.

4- Fazer um programa para ler 5 números. Ao final da leitura, o programa deverá imprimir

o maior e o menor número.

8.5 – Exercícios de Repetição do- While

Implementar a lista de while, mas agora com do-while

1- Fazer um programa para ler uma quantidade indeterminada de valores numéricos, até que o valor informado seja -1.

2- Fazer um programa para ler 10 números, calcular a soma dos pares, a soma dos ímpares.

3- Fazer um programa parar ler um número, e logo em seguida o programa deverá imprimir a tabuada deste número.

4- Fazer um programa para ler 5 números. Ao final da leitura, o programa deverá imprimir

o maior e o menor número.

8.6 – Exercícios de Repetição FOR

1- Fazer um programa para ler 15 números. Ao final da leitura, o programa deverá

imprimir o maior e o menor número.

2- Uma empresa deverá dar um aumento de salário para seus funcionários e para tanto

precisa calcular o quanto vai gastar a mais no total de sua folha de pagamento. Faça um programa para ler o salário de 5 funcionários, e calcular o reajuste salarial de acordo com

o seguinte critério:

a. Os funcionários com salário inferior a R$ 1.000,00 devem ter um reajuste de 35%;

b.Salário de R$ 1.000,00 até R$ 2.500,00, reajuste de 20%; c.Salários superiores a R$ 2.500,00, reajuste de 10%.

3- Calcular xn (x elevado a n). -Informe o numero -Informe o expoente

4- Imprimir o fatorial de um numero