Sie sind auf Seite 1von 48

APOSTILA DE ALGORITMOS E ESTRUTURAS DE DADOS LINGUAGEM C++

Prof. Ms. Andr Mendes Garcia

SUMRIO

1 INTRODUO ............................................................................................. 1 1.1 Definio de Algoritmo ....................................................................... 1 1.2 Histrico da Linguagem C++.............................................................. 2 1.3 Compilao ........................................................................................ 3 2 MEU PRIMEIRO PROGRAMA .................................................................... 5 2.1 Comentrios....................................................................................... 7 3 VARIVEIS .................................................................................................. 9 3.1 Declarao de Variveis .................................................................. 10 3.2 Constantes ....................................................................................... 11 4 SADA DE DADOS .................................................................................... 12 4.1 A Funo printf( ).............................................................................. 12 4.2 A Funo putchar()........................................................................... 14 4.3 A Funo puts()................................................................................ 15 4.4 O Objeto cout ................................................................................... 15 5 ENTRADA DE DADOS .............................................................................. 17 5.1 A Funo scanf() .............................................................................. 17 5.2 A Funo gets()................................................................................ 19 5.3 As Funes getch() e getche() ......................................................... 19 5.4 O Objeto cin (C in)............................................................................ 19 6 - OPERADORES........................................................................................... 21 6.1 Operadores Aritmticos.................................................................... 21 6.2 Precedncia dos Operadores Aritmticos ........................................ 24 6.3 Operadores Aritmticos de Atribuio.............................................. 25 6.4 Operadores Relacionais................................................................... 26 6.5 Operadores Lgicos ......................................................................... 28 7 ESTRUTURAS DE PROGRAMAO....................................................... 30 7.1 Estrutura Condicional ( if )................................................................ 30 7.2 Estrutura Condicional ( switch )........................................................ 36 7.3 Estrutura de repetio ( while ) ........................................................ 39 7.4 Estrutura de repetio ( for ) ............................................................ 40 7.5 Estrutura de repetio ( do while ).................................................... 41 8 EXERCCIOS ............................................................................................. 42

8.1 Exerccios de Estrutura Seqencial.................................................. 42 8.2 Exerccios de Estrutura condicional IF ............................................. 42 8.3 Exerccios de Estrutura condicional Switch...................................... 43 8.4 Exerccios de Repetio While......................................................... 44 8.5 Exerccios de Repetio do- While................................................... 44 8.6 Exerccios de Repetio FOR .......................................................... 45

1 INTRODUO

O presente tutorial destina-se a estudantes e profissionais de TI (Tecnologia da Informao) que precisam aprender ou revisar seus conhecimentos bsicos em lgica de programao (algoritmos) e tambm especficos da linguagem C++. A linguagem C++ foi escolhida por ser uma linguagem de alto nvel, com facilidades para o uso em baixo nvel (programao do hardware) e utilizar o paradigma da POO (Programao Orientada a Objetos). H dcadas esta linguagem vem sendo amplamente utilizada no meio acadmico e comercial tendo inmeras IDEs (Ambiente de Programao Integrado) desenvolvidas, as quais possibilitam grandes facilidades em utilizar a linguagem comercialmente. Dentre as IDEs mais famosas destacam-se o C++ Builder da Borland e o Visual C++ da Microsoft. Atualmente vrias linguagens comerciais so 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 Definio de Algoritmo Um algoritmo nada mais que uma seqncia de passos ordenados de forma a resolver um determinado problema. Um exemplo bastante simples de algoritmo uma receita de bolo, a qual contm uma seqncia lgica de passos necessrios para a confeco do bolo. Analogamente, um software um algoritmo, pois possui uma seqncia lgica de passos para resolver algum problema, s que neste quem ir executar o algoritmo o computador.

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 1

1.2 Histrico da Linguagem C++ A linguagem de progamao C / C++ foi originada da linguagem BCPL, por Martin Richards, que rodava no computador DEC PDP-7, com sistema operacional unix (verso 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 vrias melhorias na linguagem B e para dar um novo nome linguagem, chamaram-na de C (como sucessor de B). Sua primeira utilizao importante foi a reescrita do sistema operacional UNIX que at ento era escrito em assembly (d para imaginar ??). A linguagem C no foi um sucesso imediato aps a sua criao, ficando restrita a alguns laboratrios. Em 1978 (um ano histrico para os programadores C), lanado um livro famoso por Brian Kernigham e Dennis Ritchie. Esse livro serviu de tutorial para muita gente e mudou a histria da programao em C. De fato, essa primeira verso da linguagem C at hoje conhecida como C Kernigham e Ritchie ou simplemeste C K&R. Em 1981, a IBM lana o IBM PC, iniciando uma famlia de computadores de muito sucesso. A linguagem C estava no lugar certo e na hora certa para casar-se com o fenmeno dos computadores pessoais. Logo foram surgindo inmeros 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 mudanas na linguagem C, e muitas modificaes foram pouco a pouco sendo introduzidas na linguagem. Uma modificao importante foi a padronizao 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 so as classes, objetos e a idia ou paradigma de programao orientada a objeto (OOP), incluindo ainda todos os elementos da linguagem C. De uma forma geral, C/C++ no amarrada a nenhuma plataforma (Mquina/Sistema Operacional), estruturada, modular e orientada a objetos. Apesar de ser uma linguagem de alto nvel conhecida tambm como uma baixaria de alto nvel, ou seja, ela possibilita operaes com dados naturalmente s disponveis em assembler (linguagem de montagem de baixo

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 2

nvel), permitindo assim que o programador auxilie o complilador na tarefa de gerar cdigos muito otimizados.

1.3 Compilao Para que um computador possa executar um programa, este programa deve estar em linguagem de mquina. Programar nesta linguagem uma tarefa bastante complicada, e dependendo da complexidade do programa uma tarefa impossvel. Para resolver esse problema, h as linguagens de programao como a linguagem C++. O processo de compilao consiste em transformar um programa feito em uma linguagem de programao em um programa em linguagem de mquina, a qual o computador compreende. Cada linguagem tem o seu compilador, que nada mais que um programa para fazer esta transformao. Desta forma, para executar os nossos programas em C++, precisaremos compila-los atravs do compilador C++. Como ilustra a figura abaixo.

#include <conio.h> #include <stdio.h> void main() { clrscr(); printf("Hello World !"); getch(); }

Programa na linguagem C++ Nome do arquivo: primeiro.cpp

COMPILADOR C++

X !s[ t@ p &3. 6 6 6 9P ^$wXrSFN}~ t-G v+ s:F F _^] U3P v v P PaPj ] U^ BF ^NV!rP] ;s+ uF FP ~j ZY[j ~~v v;s

Programa em linguagem de mquina Nome do arquivo: primeiro.exe

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 3

Note que o arquivo em linguagem C++ tem a extenso cpp de C plus plus, j o arquivo em linguagem de mquina tem a extenso exe a qual indica que um arquivo executvel, ou seja, um programa que pode ser executado pelo computador.

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 4

2 MEU PRIMEIRO PROGRAMA

Como tradio, comearemos 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 diferena entre letras maisculas e minsculas. Outra observao a fazer que todo comando a no ser estruturas, chaves e alguns outros comandos, deve ser seguido de ponto-e-vrgula ;.

#include <conio.h> #include <stdio.h> int main() { printf("Hello World !"); printf("\nEste meu primeiro programa !"); printf("\n"); getch(); }

Aps compilar o programa acima e executa-lo, o resultado ser:

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 usurio do programa pressione alguma tecla. Analisando o programa mais de perto, as duas primeiras linha do programa #include <conio.h> e #include <stdio.h> no so instrues em C++ e sim diretivas do pr-processador C++. O pr-processador C++ um programa que examina o programafonte em C++ e executa nele certas modificaes com base em instrues chamadas diretivas. Toda diretiva iniciada pelo smbolo # 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 incluso de outro arquivo em nosso programa-fonte. Na verdade o compilador substitui a diretiva #include de nosso programa pelo contedo do arquivo indicado antes de o programa ser compilado. Em nosso primeiro exemplo <conio.h> um arquivo de bilbioteca de funes, na qual contm a funo clrscr(), que
Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia Pgina.: 5

limpa a tela, e <stdio.h> uma outra biblioteca de funes que contm a funo printf(), que imprime uma mensagem na tela. Como se pode notar, aps as duas primeiras linhas, h uma estrutura da seguinte forma:

void main() { }

Todo programa na linguagem C++ possui uma funo principal chamada mai(), onde a palavra void que precede main significa que essa funo no retorna valores. A chave aberta { indica o incio do programa e a fechada } o trmino do programa. Abaixo segue a explicao completa do programa:
Diretivas do pr-processador para incluir os arquivos conio.h e stdio.h

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

void main() { system("cls"); printf("Hello World !");

Funo principal do programa Incio do programa Limpa a tela

Imprime na tela a frase Hello World ! printf("\nEste meu primeiro programa !"); Pula de linha, atravs do smbolo \n e imprime a frase Este meu primeiro programa ! printf("\n"); Pula de linha atravs do smbolo \n getch(); Paula do programa at que o usurio pressione alguma tecla } Finaliza o programa

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

Exerccio: Fazer um programa em C++ com a seguinte seqncia de passos: 1. Limpar a tela 2. Imprimir a mensagem Este o meu segundo programa !, 3. Pular trs linhas;
Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia Pgina.: 6

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

Soluo:
#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 Comentrios Comentrios so trechos dentro do programa que so ignorados pelo compilador, e servem para o programador / analista documentar trechos de seu programa de forma a facilitar sua manuteno. Inserir comentrios em um programa uma boa prtica de programao, e um bom programador deve ter este costume.

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 7

H dois tipos de comentrios, comentrio de linha e comentrio contnuo. O comentrio de linha iniciado por duas barras // e qualquer coisa aps essas barras at o final da linha o compilador ignora.

Exemplo de comentrio de linha:


// este um comentrio de linha // Segundo programa -------------------------------------------#include <conio.h> #include <stdio.h> int main() { // incio do programa printf("Este o meu segundo programa !"); // imprime uma mensagem printf("\n\n\n"); // pula trs linhas printf("Pressione algo para encerrar..."); getch(); // d uma pausa } // trmino do programa

O comentrio contnuo inicial por uma barra e um asterisco /* e terminado por um asterisco barra */. Tudo que tiver entre esses smbolos ignorado pelo compilador.

Exemplo de comentrio contnuo misturado com comentrios de linha:


/* Este um comentrio Que pode conter vrias linhas */ #include <conio.h> #include <stdio.h> int main() { /* incio do programa */ printf("Este o meu segundo programa !"); // imprime uma mensagem printf("\n\n\n"); // pula trs linhas printf("Pressione algo para encerrar..."); getch(); // d uma pausa } // trmino do programa

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 8

3 VARIVEIS

Uma varivel um espao na memria RAM reservado para armazenar valores. Para se criar uma varivel em C++ necessrio definir qual o tipo de dado que ser armazenado. A tabela abaixo mostra os tipos de dados bsicos em C++.
Tipo char int Bits 8 16 Bytes 1 2 Intervalo -128 a 127 -32768 a 32767 Uso Nmero muito pequeno e caracter Nmero inteiro, contador, controle de laos Nmero com casas decimais (preciso de 7 dgitos) Nmero com casas decimais (preciso de 15 dgitos) Especificar funo sem retorno

float

32

3.4e-38 a 3.4e38

double

64

1.7e-308 a 1.7e308

void

Nenhum valor

Com exceo de void, os tipos de dados bsicos podem ser acompanhados por modificadores na declarao de variveis. Os modificadores de tipo oferecidos por C++ so:
long short unsigned

Um modificador de tipo pode ser utilizado sem que seja especificado o tipo da varivel. Quando isso feito, o compilador assume, por default (padro), que o tipo int. Tipicamente o modificador long aumenta o nmero de bytes usados para o registro do nmero. Por conseqncia o intervalo de validade do nmero fica aumentado significativamente. O modificador unsigned, usado somente em inteiros, permite que um bit usado para guardar o sinal do nmero seja usado para guardar o valor do nmero. Em conseqncia disto o intervalo do nmero fica dobrado, porm somente permite o uso de nmeros positivos. A tabela abaixo mostra alguns tipos modificados:

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 9

Tipo unsigned char Unsigned Short long unsigned long long double

Bits 8 16 16 32 32 80

Bytes 1 2 2 4 4 10

Intervalo 0 a 255 0 a 65535 -32768 a 32767 -2.147.483.648 a 2.147.483.647 0 a 4.294.967.295 3,4E-4932 a 1,1E+4932

3.1 Declarao de Variveis Como na maioria das linguagens de programao, para poder utilizar uma varivel necessrio declar-la. Em C++ a declarao de uma varivel basicamente coloca-se o tipo de dados que vai ser armazenado e o nome para varivel, por exemplo: nome da varivel int nome_da_variavel; tipo de dado O nome de uma varivel muito importante, pois atravs dele que se utiliza a varivel. Os nomes de variveis devem obedecer as seguintes regras:

1. Ser nico, no se pode ter duas variveis com o mesmo nome; 2. No pode comear com nmeros; 3. No pode ter espaos e nem caracteres especiais, tais como acentuao e cedilha. 4. No pode coincidir com alguma palavra reservada do C++, por exemplo, if, void, main, while, for, etc.....

Para se atribuir algum valor para uma varivel, necessrio utilizar o operador de atribuio =, e para se recuperar seu valor, basta apenas Por exemplo, o programa abaixo atribui um valor varivel e imprime na tela.

#include <conio.h> #include <stdio.h> int main() { int x; // declarao da varivel x = 5; // atribuindo o valor 5 para a varivel x printf("O contedo da varivel x %d", x); getch(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 10

Uma varivel pode ser inicializada j em sua declarao, como mostra alguns exemplos abaixo:
Declarao int num; int num, r; int num = 5 int num, soma=0; Descrio Declara uma varivel do tipo int chamada de num Declara duas variveis do tipo int Declara uma varivel j inicializando-a com o valor 5 Declara duas variveis sendo que uma est sendo inicializada e outra no

3.2 Constantes Constantes so como variveis, porm seus valores so fixos, como o prprio nome sugere. Podemos utilizar duas formas de definir constantes em C++, como segue:

1 - Atravs da diretiva #define: Exemplo: #define pi 3.14

2 - Atravs do modificador de acesso varivel 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> // define clrscr() e getch() #include <iomanip.h> // define setprecision #define pi 3.14 int main() {

cin faz a entrada de dados

float raio, area; setprecision define o nmero de cout << "Informe o raio: "; casas decimais cin >> raio; area = pi * raio * raio; cout << setprecision(2); cout << "A rea do circulo : " << area; cout << "\nPressione alguma tecla para encerrar..."; getch(); } getch espera at que alguma tecla seja pressionada

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 11

4 SADA DE DADOS
As funes para sada de dados em C++ so: printf(), putchar(), puts(), cout. As trs primeiras funes so nativas da linguagem C, e cout foi introduzida junto com a linguagem C++.

4.1 A Funo printf( ) Sntaxe: printf(expresses de controle ou strings, argumentos);

Exemplo:
printf(Texto a ser impresso); printf(\nA mdia geral da sala : %4.2d , media); printf(\nEntre %d aluno(s) a mdia : %4.2f, qde, media);

Note que os caracteres \n, %d, %4.2 so cdigos de formatao de texto onde:

\n Indica nova linha; %d indica que ser impresso um argumento decimal; %4.2f indica que ser impresso um nmero decimal com 4 espaos na tela sendo 2 para casa decimal.

Os cdigos de formatao e de controle so:

Cdigo \n \t \b \ \ \\ \f \0 %c

Descrio Nova Linha Tab Retrocesso Aspas dupla Aspas simples Barra Salta formulrio Nulo Caracter simples
Pgina.: 12

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

%d %e %f %o %s %u %x

Inteiro decimal Real em notao cientfica Real em ponto flutuante Inteiro em Octal Cadeia de caracteres Inteiro decimal sem sinal Inteiro em hexadecimal

Exemplos: Ex:
int main() { printf("Este o numero dois: %d",2); printf("%s est a %d milhes de milhas\ndo sol","Vnus",67); }

Tamanho de campos na impresso: 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); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 13

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 cdigos de 0 a 255, se imprimirmos em formato caractere um nmero maior que 255, ser impresso o resto da diviso do nmero por 256; se o nmero for 3393, ser impresso A pois o resto de 3393 por 256 65.

4.2 A Funo putchar() A funo putchar() coloca apenas um caracter na tela na posio onde estiver o cursor. Exemplo:
Int main() { char ch; printf("digite uma letra minscula : "); ch=getchar(); putchar(toupper(ch)); putchar('\n'); }

Este exemplo pede para o usurio digitar uma letra minscula e o programa a imprime em maiscula atravs da funo toupper().

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 14

4.3 A Funo puts() A funo 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++. Sntaxe:

cout << expresso

Exemplo:

cout << O nmero de alunos : << qde;

Manipuladores de Tamanho de Campos na Impresso do Objeto cout O objeto cout permite estabelecer o tamanho de um campo para a impresso. Isto significa que podemos definir o nmero de colunas que sero ocupadas por um valor ou texto a ser impresso. Geralmente, a definio de tamanho de campos usada para alinhamento e esttica de um relatrio. Os manipuladores de tamanho de campos esto definidos no arquivo iomanip.h e so os seguintes:

setw setprecision em ponto flutuante. setfill campo

Seleciona o tamanho do prximo campo a ser impresso. Define o nmero de casas decimais a serem impressas para nmeros

Seleciona o caractere que dever preencher as colunas em branco de um

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 15

Exemplo1: int qde_maca = 5, qde_banana = 10; cout <<\nQde. de mas: << setw(12) << qde_maca; cout <<\nQde. de bananas: << setw(12) << qde_banana;

A sada ser: Qde. de mas: Qde. de bananas 5 10

Exemplo2: int qde_maca = 5, qde_banana = 10; cout << setfill(.); cout <<\nQde. de mas: << setw(12) << qde_maca; cout <<\nQde. de bananas: << setw(12) << qde_banana;

A sada ser: Qde. de mas:.............................5 Qde. de bananas:........................10

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 16

5 ENTRADA DE DADOS
As funes de entrada de dados so: scanf(); gets(); getch(); getche(); cin.

Semelhante ao comando cout, o comando cin especfico da linguagem C++, e as outras so nativas da linguagem C.

5.1 A Funo scanf() Sntaxe: scanf(Expresso de controle, argumentos);

A lista de argumentos deve consistir nos endereos de memria das variveis. C oferece um operador para tipos bsicos chamado operador de endereo e referenciado pelo smbolo "&" que retorna o endereo da varivel na memria RAM. A memria do computador dividida em bytes, e so numerados de 0 at o limite da memria. Estas posies so chamadas de endereos. Toda varivel ocupa certa localizao na memria, e seu endereo o primeiro byte ocupado por ela. Ex: main() { int num; printf("Digite um nmero inteiro: "); scanf("%d",&num); printf("\nO nmero digitado %d",num); printf("\nO endereo de memria %u",&num); } Ex:
main() { int num1, num2; printf("Digite dois nmeros inteiros: "); scanf("%d %d",&num1, &num2); printf("\nO 1 nmero digitado %d e o 2 %d",num1, num2); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 17

Ex: main() { float num; printf("Digite um nmero real: "); scanf("%f",&num); printf("\nO nmero %4.2f",num); printf("\nO endereo %u",&num); }

Ex:
main() { int num1; float num2; printf("Digite dois nmeros, o 1 inteiro e o 2 com casas decimais: "); scanf("%d %f",&num1, &num2); printf("\nO Primeiro nmero digitado %d e o segundo %f",num1, num2); }

Para ler uma string com scanf no necessita de se colocar o operar & para passar o endereo da varivel porque uma string um vetor de char e todo vetor em C um endereo para a primeira posio (como veremos mais adiante).

Ex: char nome[30]; A sada ser: Digite seu nome: Andr Mendes Seu nome Andr

printf(Digite seu nome:); scanf(%s, nome); printf(\nSeu nome %s, nome);

Note que no foi impresso todo nome, isto porque a funo scanf entende espao como um finalizador de string, semelhante ao objeto cin como veremos mais adiante. Para resolvermos isto devemos utilizar a funo gets().

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 18

5.2 A Funo gets() A funo gets l uma string inteira, inclusive espaos, at que se pressione Enter. Ex: char nome[30]; A sada ser: Digite seu nome: Andr Mendes Seu nome Andr Mendes

printf(Digite seu nome:); gets(nome); printf(\nSeu nome %s, nome);

5.3 As Funes getch() e getche() As funes getch() e getche() lem apenas um caractere e no necessitam que seja pressionando o Enter. Assim que qualquer letra tenha sido pressionada a funo encerra. A diferena entre e getch e getche que getche apresenta a letra pressionada na tela, enquanto que getch no 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 extrao >> que conecta a entrada de dados varivel que a conter. As definies ao uso de cin e >> esto no arquivo iostream.h.

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 19

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; }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 20

6 - OPERADORES
A linguagem C++ rica em operadores, em torno de 50. Alguns so mais usados que outros, como o caso do operador de atribuio ( = ) e dos operadores aritmticos.

6.1 Operadores Aritmticos Em C++ os operadores aritmticos esto divididos em duas categorias: Binrios, que fazem operaes entre dois operandos e os Unrios, que fazem operaes em apenas um operando.

Os operadores aritmticos binrios em C++ so:

Smbolo Utilizado + * / %

Descrio Soma Subtrao Multiplicao Diviso Resto da diviso

Ex: Fazer um programa programa que apresente a soma entre dois nmeros:
int main() { printf("A soma entre dois nmeros %d", 3 + 4); getch(); }

Ex: Fazer um programa que apresente a soma de duas variveis:


int main() { int A, B; A = 3; B = 4; printf("A soma entre dois nmeros %d", A + B); getch(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 21

Ex: Fazer um programa que pea para o usurio digitar dois nmeros e apresente a soma destes nmeros:
int main() { int A, B; printf("Digite dois nmeros: "); scanf("%d %d",&A, &B); printf("A soma entre dois nmeros %d", A + B); getch(); }

Ex: Fazer um programa que pea para o usurio digitar dois nmeros e apresente a soma, subtrao, multiplicao e o resto da diviso entres os nmeros digitados:
int main() { int A, B; printf("Digite dois nmeros: "); scanf("%d %d",&A, &B); printf("A soma entre dois nmeros %d", A + B); printf("A subrao entre dois nmeros %d", A - B); printf("A multiplicao entre dois nmeros %d", A * B); printf("A diviso entre dois nmeros %d", A / B); printf("O resto da diviso entre dois nmeros %d", A % B); getch(); }

Ex: Fazer um programa para calcular o valor y da seguinte funo do 2 grau: y = A* x2 + B * x + C


int main() { int A, B, C, x, y; x A B C = = = = 5; 12; 7; 9;

y = A*x*x + B*x + C; printf("O valor de y para x igual a %d %d: ", x, y); getch(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 22

Ex: Fazer um programa que dado o salrio de um funcionrio, aumente 15% e imprima o salrio velho o reajuste e o novo salrio.
int main() { float salario, salario_novo, reajuste; printf("Digite seu salrio: "); scanf("%f", &salario); reajuste = salario * 0.15; // obtendo 15% do salario salario_novo = salario + reajuste; printf("\nO salrio antigo era: %f",salario); printf("\nO reajuste : %f",reajuste); printf("\nO salrio novo : %f",salario_novo); getch(); }

Como dito antes, os operadores unrios realizam operaes em apenas uma varivel, e servem para incrementar ou decrementar o valor 1. So eles:

Smbolo Utilizado ++ --

Descrio Acrescenta 1 na varivel Decrementa 1 na varivel

Ex: Fazer um programa que some 1 na varivel x e subtraia 1 da varivel y:

Soluo com Operador Binrio


int main() { int x=10, y=10;

Soluo com Operador Unrio


int main() {

int x=10, y=10; x = x + 1; y = y - 1; printf("\nO valore de x %d",x); printf("\nO valore de y %d",y); getch(); } } getch(); x++; y--; printf("\nO valore de x %d",x); printf("\nO valore de y %d",y);

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 23

Note no exemplo anterior que:


x = x + 1;

equivalente a x++;

e
y = y - 1;

equivalente a y--;

Deve-se prestar ateno na precedncia do operador, pois h diferena entre colocar o operador antes ou depois da varivel.

Ex: Operador Direita da Varivel


x = 5; A = x++;

Operador Esquerda da Varivel


x = 5; A = ++x;

Neste caso o valor de A 5, pois se atribui x a A Neste caso x incrementado para 6 e depois e depois incrementa x, portanto A contm 5. atribudo a A tendo o valor 6 tambm.

6.2 Precedncia dos Operadores Aritmticos O nvel de precedncia dos operadores avaliado da esquerda para a direita. Os parnteses podem ser utilizados para alterar a ordem da avaliao. A precedncia dos operadores aritmticos :

Precedncia 1 2 3

Operadores ++ -*/% +-

Ex: Considerando: int x=5, y=3, z=1, n; na expresso: n = z + y * x;

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 24

O valor 16 ser atribudo varivel n, pois o operador de multiplicao * tem precedncia sobre o operador de soma +, isto faz com que a operao de multiplicao y * x seja executada antes da operao de soma.

Considerando agora a expresso: n = (z + y) * x;

O valor 20 ser atribudo varivel n, pois as expresses entre parnteses so executadas em primeiro lugar.

6.3 Operadores Aritmticos de Atribuio Os operadores aritmticos de atribuio combinam as operaes aritmticas com atribuio. So cincos os operadores aritmticos de atribuio, como mostra a tabela abaixo: += -= *= /= %=

Exemplos: i += 2; k *= y+1; j /= 2.5; p %= 5; d -= 3; equivale a equivale a equivale a equivale a equivale a i = i + 2; k = k * (y+1); j = j / 2.5; p = p % 5; d = d 3;

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 25

Ex: Fazer um programa que pea para o usurio digitar quatro notas e o programa dever imprimir a mdia. Lembrando, para se calcular esta mdia, deve-se somar todas as notas digitadas e dividir por 4.

Com Operadores Aritmticos


Int { main()

Com Operadores Aritmticos de Atribuio


Int { main()

float nota, media=0; printf("Digite a primeira nota: "); scanf("%f", &nota); media = media + nota; printf("Digite a segunda nota: "); scanf("%f", &nota); media = media + nota; printf("Digite a terceira nota: "); scanf("%f", &nota); media = media + nota; printf("Digite a quarta nota: "); scanf("%f", &nota); media = media + nota; media = media / 4; printf("\n\nA mdia : %f", media); getch(); } }

float nota, media=0; printf("Digite a primeira nota: "); scanf("%f", &nota); media += nota; printf("Digite a segunda nota: "); scanf("%f", &nota); media += nota; printf("Digite a terceira nota: "); scanf("%f", &nota); media += nota; printf("Digite a quarta nota: "); scanf("%f", &nota); media += nota; media /= 4; printf("\n\nA mdia : %f", media); getch();

6.4 Operadores Relacionais O objetivo dos operadores relacionais o de fazer comparaes, e na linguagem C++ so eles:

Operador Relacional == != > >= < <=

Descrio Igual Diferente Maior Maior ou igual Menor Menor ou igual

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 26

H apenas dois possveis resultados para uma expresso utilizando operadores relacionais: Verdadeiro ou Falso. Na linguagem C++ no existe um tipo de varivel 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:

Expresso 15 == 20 7 == 7 10 >= 10 10 > 10 90 > 1 90 >= 1 70 < 150 70 > 150 80 > 45 27 >= 27 27 > 27 13 == 13 13 != 13 13 != 8

Resultado em C++ 0 1 1 0 1 1 1 0 1 1 0 1 0 1

Significado Falso Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Falso Verdadeiro Falso Verdadeiro

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 27

6.5 Operadores Lgicos Os operadores lgicos tambm fazem comparaes. A diferena entre

comparaes lgicas e relacionais est na forma como os operadores avaliam seus operandos. Na linguagem C++ so trs os operadores lgicos, como mostrado a seguir:

Operador && || !

Significado lgico E, ou and em algumas linguagens lgico OU, ou or em algumas linguagens lgico NO, ou not em algumas linguagens

O operador && (E lgico) 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 A Falso Falso Verdadeiro Verdadeiro B Falso Verdadeiro Falso Verdadeiro Expresso A && B Falso Falso Falso Verdadeiro

O operador || (OU lgico) 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 A Falso Falso Verdadeiro Verdadeiro B Falso Verdadeiro Falso Verdadeiro Expresso A II B Falso Verdadeiro Verdadeiro Verdadeiro
Pgina.: 28

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

O objetivo do operador de negao ! (NO lgico) 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 A Falso Verdadeiro Expresso !A Verdadeiro Falso

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 29

7 ESTRUTURAS DE PROGRAMAO
As estruturas de programao constituem a base fundamental para se construir algoritmos. H basicamente trs tipos de estruturas de programao: Seqencial, Condicional e de Repetio. A estrutura seqencial a que utilizamos em todos os exemplos anteriores, onde todos os comandos so executados, sem exceo. J nas estruturas condicionais, podemos fazer com que um bloco de comandos seja executado de acordo com uma condio, e esta condio uma expresso lgica, resultante de uma operao com operadores relacionais, combinado ou no com operadores lgicos. Com as estruturas de repetio, possvel fazer com que um bloco de comandos seja executado vrias vezes, tambm de acordo com uma expresso lgica.

7.1 Estrutura Condicional ( if ) A estrutura condicional if, se em portugus, pode ser utilizada de forma simples ou combinada com a else, seno em portugus.

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

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 30

Ex.: (Utilizando a estrutura if simples): Pedir para o usuriorio digitar um nmero inteiro e, imprimir a mensagem "Este nmero negativo" se o nmero digitado for negativo:
int main() { int x; cout << "Digite um nmero inteiro: "; cin >> x; if( x < 0 ) { cout << "O nmero digitado negativo !"; } getch(); }

Ex.: (Utilizando a estrutura if else): Pedir para o usuriorio digitar um nmero inteiro e, imprimir a mensagem "Este nmero negativo" se o nmero digitado for negativo, caso contrrio imprimir a mensagem: Este nmero no negativo !:
int main() { int x; cout << "Digite um nmero inteiro: "; cin >> x; if( x < 0 ) { cout << "O nmero digitado negativo !"; } else { cout << "O nmero digitado NO negativo !!"; } getch(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 31

Ex.: (Utilizando a estrutura if else aninhada): Pedir para o usuriorio digitar um nmero inteiro e imprimir se o nmero negativo, positivou ou igual a zero.
int main() { int x; cout << "Digite um nmero inteiro: "; cin >> x; if( x < 0 ) { cout << "O nmero digitado negativo !"; } else if( x == 0 ) { cout << "O nmero digitado ZERO !!"; } else { cout << "O nmero mero digitado POSITIVO !!"; } getch(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 32

Ex.: Fazer um programa que pea para o usurio digitar um salrio, e, se o salrio for menor ou igual R$ 1000,00 calcule um reajuste de 25%, seno, se o salrio for maior que R$ 1000,00 E menor que R$ 1500,00 calcule um reajuste de 15%, seno, se o salrio for maior ou igual que R$ 1500,00 E menor que R$ 2000,00 calcule um reajuste de 10%, seno, calcule um reajuste de 5%

int main() { float salario; cout << "Digite um salrio: "; cin >> salario; if( salario <= 1000 ) { cout << "O reajuste : " << salario * } else if( salario > 1000 && salario < 1500 ) { cout << "O reajuste : " << salario * } else if( salario >= 1500 && salario < 2000 ) { cout << "O reajuste : " << salario * } else { cout << "O reajuste : " << salario * } getch(); } // fim do programa

0.25;

0.15;

0.1;

0.05;

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 33

Ex.: Fazer o mesmo programa anterior, s que agora crie uma varivel para guardar o reajuste, imprimindo alm do reajuste, o salrio velho e novo:
int main() { float salario, reajuste; cout << "Digite um salrio: "; cin >> salario; if( salario { reajuste } else if( salario { reajuste } else if( salario { reajuste } else { reajuste } <= 1000 ) = salario * 0.25;

> 1000 && salario < 1500 ) = salario * 0.15;

>= 1500 && salario < 2000 ) = salario * 0.10;

= salario * 0.05;

cout << "\n\nO salrio antigo era.: " << salario; cout << "\n\nO reajuste .........: " << reajuste; cout << "\nO SALARIO NOVO .......: " << salario + reajuste; getch(); } // fim do programa

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 34

Ex.: Faa um programa que calcule o imposto a pagar sobre circulao de mercadorias e prestao de servios ICMS, sendo que, o usurio dever informar o valor da mercadoria ou servio prestado e tambm a regio do Brasil. Aps o programa dever calcular o imposto e apresentar. As regras para calcular o imposto so:

Regio do Brasil 1 (Sudeste) OU 2 (Sul) OU 3 (Nordeste) Demais regies

Alquota 21% 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(); }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 35

7.2 Estrutura Condicional ( switch ) O uso da estrutura condicional switch utilizada quando se tem muitas alternativas para se comprar, e a utilizao da estrutura if torna-se invivel.

Esta expressao S pode ser tipo tipo int ou char

Sintaxe: switch ( { case constante1: comandos; break; case constante2: comandos; break; case constante3: comandos; break; default: // opcional comandos; break; } expressao )

Este comando s pode fazer comparaes com valores inteiros (int) ou do tipo caracteres (char). Desta forma a expressao deve ter um desses tipos de dados. A execuo deste comando segue os seguintes passos: 1 A expresso avaliada 2 Se o resultado da expresso for igual a uma das constantes, ento a execuo comear a partir do comando associado a essa constante e prossegue com a execuo de todos os comandos at o fim do switch, ou at que se encontre uma intruo break. 3 Se o resultado da expresso no for igual a nenhuma das constantes e j tiver sido includa no comando switch a opo default, o comando associado ao default ser
Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia Pgina.: 36

executado. Caso contrrio, isto , se a opo default no estiver presente, o processamento continuar a partir do comando seguinte ao switch. O comando break provoca a sada imediata do switch. Se no existir um break seguindo as instrues associadas a um case, o programa prosseguir executando todas as instrues associadas aos case abaixo.

Ex.: Fazer um programa para ler do usurio um nmero inteiro referente ao dia da semana (de 1 a 7). Imprima por extenso o dia da semana, e, caso o usurio digite um nmero diferente de 1 a 7, imprima dia da semana invlido.

int main() { int dia; cout << "Digite o nmero 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

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 37

Ex.: Fazer um programa para ler dois valores, digitados pelo usurio, e tambm uma operao aritmtica a realizar sobre esses valores.

Int main() { float x, y, resultado; char opc;

cout << "\nDigite dois nmeros: "; cin >> x >> y; cout << "\n\nESCOLHA ENTRE UMA DAS OPES ABAIXO"; cout << "\n1 - Soma"; cout << "\n2 - Subtrao"; cout << "\n3 - Multiplicao"; cout << "\n4 - Diviso"; cout << "\nOpc.: "; opc = getche(); switch ( opc ) { case '1': resultado = x + y; cout << "\n\nO resultado de " << break; case '2': resultado = x - y; cout << "\n\nO resultado de " << break; case '3': resultado = x * y; cout << "\n\nO resultado de " << break; case '4': if( y != 0) { resultado = x / y; cout << "\n\nO resultado de " } else { resultado = 0; cout << "\n\n\aNO POSSVEL } break; default: resultado = 0; cout << "\n\n\nVOC ESCOLHEU UMA break; } // fim do switch cout << "\n\nPressione qualquer tecla para encerrar..."; getch(); } /// fim do programa

x << " + " << y << " : "

<< resultado;

x << " - " << y << " : "

<< resultado;

x << " * " << y << " : "

<< resultado;

<< x << " / " << y << " : "

<< resultado;

EFETUAR UMA DIVISO POR ZERO !!";

OPO INVLIDA !!";

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 38

7.3 Estrutura de repetio ( while ) O uso da estrutura de repetio while (enquanto) permite ao programador especificar que um conjunto de comandos seja repetido enquanto alguma condio (expresso lgica) for verdadeira.

Sintaxe:

while( expresso lgica ) { Comando1; Comando2; ... }

Na primeira vez que a expresso lgica entre parnteses se tornar falsa, o while no repetir a execuo do bloco, e a execuo continuar com a sentena ou comando que vem logo aps o bloco do while. Ex.: Fazer um programa para ler uma quantidade indeterminada de valores numricos, 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

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 39

7.4 Estrutura de repetio ( for ) A estrutura for precisa de uma varivel para controlar os loops (voltas ou repeties). Em for, essa varivel dever ser iniciada, indicando seu critrio de execuo, e forma de incremento ou decremento. Ou seja, for precisa de trs condies. Vale salientar que essas condies so separadas por ponto-e-vrgula (;).

Sintaxe:
for (inicio; expresso; incremento) { comando1; comando2; .... }

Incio Nela normalmente utilizada uma varivel com valor inicial , pois o script passar por l somente uma vez logo no comeo do loop.

Expresso Nela se utiliza uma verificao no inicio da cada loop retornando TRUE , a repetio continuar , caso contrrio a expresso finalizada.

Incremento aqui o script ir passar no final da execuo, 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 nmeros, 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 {
Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia Pgina.: 40

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 repetio ( do while ) O do-while semelhante ao while, com exceo de que a condio do teste ocorre no final do ciclo. Tendo a condio do teste, no final, garante que o corpo do lao executado pelo menos uma vez. Sintaxe:
do { comando1; comando2; } while (teste);

Ex.: Fazer um programa para imprimir e somar os 20 primeiros nmeros 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; }

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 41

8 EXERCCIOS
8.1 Exerccios de Estrutura Seqencial 1- Leia dois nmeros, efetue e mostre o resultado, das quatro operaes matemticas bsicas desses dois nmeros.

2- Calcular o valor da funo, 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 operao: z= (x+y) / (x-1);

4- Dados dois nmeros inteiros calcular a diviso inteira e o resto da diviso entre eles.

5- Dado um nmero inteiro, fornecer como sada o prprio nmero, o dobro, o triplo e o quadrado desse nmero.

6- Ler uma temperatura em graus Fahrenheit e apresent-la convertida em graus Centgrados. A frmula de converso : C = (F - 32) * (5 / 9), onde F a temperatura em Fahrenheit e C a temperatura em Centgrados.

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

8.2 Exerccios de Estrutura condicional IF 1- Verificar se um dado nmero inteiro par ou impar.

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

3- Ler trs valores inteiros, determine e imprima o maior deles.

4- Dados trs valores distintos, coloc-los em ordem crescente.

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 42

5- Efetue o clculo do reajuste de salrio de um funcionrio. Considere que o funcionrio dever receber um reajuste de 15% caso seu salrio seja menor que 500. Se o salrio 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; snior = maiores de 18 anos.

8.3 Exerccios 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; snior = 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 numricos e o valor C caractere, imprimir a operao aritmtica de A por B segundo o caractere C, caso contrrio a mensagem : 'Operador no definido'. Exemplo : Entrada A = 3, B = 5 e C = '+' a sada dever ser 3 + 5 = 8 Entrada A = 3, B = 5 e C = 'L' a sada dever ser 'Operador no definido'

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 43

4- Uma empresa decide presentear seus funcionrios com um bnus de Natal, cujo valor definido do seguinte modo: os funcionrios do sexo masculino com tempo de casa superior a 15 anos tero

direito a um bnus de 20% de seu salrio; os funcionrios com tempo de casa superior a 10 anos tero direito a um bnus de

25% de seu salrio; e os demais funcionrios tero direito a um bnus de 5.000,00.

5- Em uma eleio presidencial, com eleitores, existem quatro candidatos. Os votos so informados atravs de cdigo. Os dados utilizados para a escrutinagem obedecem seguinte codificao: 1, 2, 3, 4 = voto para os respectivos candidatos; 5 = voto nulo; 6 = voto em branco;

8.4 Exerccios de Repetio While 1- Fazer um programa para ler uma quantidade indeterminada de valores numricos, at que o valor informado seja -1.

2- Fazer um programa para ler 10 nmeros, calcular a soma dos pares, a soma dos mpares.

3- Fazer um programa parar ler um nmero, e logo em seguida o programa dever imprimir a tabuada deste nmero.

4- Fazer um programa para ler 5 nmeros. Ao final da leitura, o programa dever imprimir o maior e o menor nmero.

8.5 Exerccios de Repetio do- While Implementar a lista de while, mas agora com do-while

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 44

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

2- Fazer um programa para ler 10 nmeros, calcular a soma dos pares, a soma dos mpares.

3- Fazer um programa parar ler um nmero, e logo em seguida o programa dever imprimir a tabuada deste nmero.

4- Fazer um programa para ler 5 nmeros. Ao final da leitura, o programa dever imprimir o maior e o menor nmero.

8.6 Exerccios de Repetio FOR 1Fazer um programa para ler 15 nmeros. Ao final da leitura, o programa dever

imprimir o maior e o menor nmero.

2- Uma empresa dever dar um aumento de salrio para seus funcionrios e para tanto precisa calcular o quanto vai gastar a mais no total de sua folha de pagamento. Faa um programa para ler o salrio de 5 funcionrios, e calcular o reajuste salarial de acordo com o seguinte critrio: a. Os funcionrios com salrio inferior a R$ 1.000,00 devem ter um reajuste de 35%; b.Salrio de R$ 1.000,00 at R$ 2.500,00, reajuste de 20%; c.Salrios 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

Algoritmos e Tcnicas de Programao em C++ - Prof. Ms. Andr Mendes Garcia

Pgina.: 45

Das könnte Ihnen auch gefallen