programaÇÃo de computadores

105
PROGRAMAÇÃO DE COMPUTADORES Licenciatura em Informática Joilson dos Reis Brito

Upload: elivonsantos3734

Post on 04-Jul-2015

1.358 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: PROGRAMAÇÃO DE COMPUTADORES

PROGRAMAÇÃO DE COMPUTADORESLicenciatura em Informática

Joilson dos Reis Brito

Page 2: PROGRAMAÇÃO DE COMPUTADORES
Page 3: PROGRAMAÇÃO DE COMPUTADORES
Page 4: PROGRAMAÇÃO DE COMPUTADORES
Page 5: PROGRAMAÇÃO DE COMPUTADORES

Iconografia 6Boas Vindas 7Unidade I Conceitos de Programação Introdução 9

1. Raciocínio Lógico 10 2. Comunicação do raciocínio lógico 10

3 Linguagens de Programação 12 Unidade IIO Ambiente de Programação Dev C++ Introdução 14

1. Instalando o Dev C++ 152.Escrevendo seu primeiro programa 22

Unidade IIIComando de Saída,Constantes e Variáveis,Comando de Entrada e Expressões Aritméticas Introdução 26

1. Comando de Saída 332. Constantes 333. Variáveis 344. Comando de Entrada 415. Expressões Aritméticas 43

Unidade IV Expressões Lógicas e Estruturas de Controle Introdução 52

1.Expressões Lógicas 532. Estruturas de Controle 56

Unidade VComandos de Repetição Introdução 64

1. Estruturas de Repetição 652. O comando para 65

3. O comando enquanto 72

Unidade VIVetor e Matriz Introdução 77

1. Vetor 782. Matriz 85

Referências Bibliográficas 90

Page 6: PROGRAMAÇÃO DE COMPUTADORES
Page 7: PROGRAMAÇÃO DE COMPUTADORES
Page 8: PROGRAMAÇÃO DE COMPUTADORES

Seja bem-vindo(a) ao componente curricular Programação de Computadores. Neste componente curricular apresentaremos os comandos que você irá utilizar para realizar a atividade de programação de computadores, uma das atividades mais relevantes no ambiente da computação que vai requerer de você uma capacidade de concentração, raciocínio lógico e disciplina no seguimento das regras impostas pela linguagem de programação, regras estas que deverão ser seguidas, à risca, na sua atividade de programação. Neste componente curricular você colocará em prática os conhecimentos adquiridos nos componentes curriculares, Lógica de Programação e Lógica Matemática.

Atividade de programação de computadores é uma atividade muito prazerosa porque permite que você utilize toda a sua criatividade para ensinar o computador a solucionar problemas e é uma atividade essencial para estudantes de todos os cursos da área de informática, tanto que, qualquer que seja o curso que você venha a cursar na área de informática, esta disciplina estará presente.

O conteúdo deste componente curricular será dividido em 6 unidades: Unidade I – Conceitos de programação; Unidade II - O Ambiente de Programação Dev c++ ; Unidade III – Constantes,Variáveis Expressões Aritméticas, Comandos de Entrada e Saída; Unidade IV – Estruturas de Controle; Unidade V - Comandos de Repetição; Unidade VI – Vetor e Matriz;

Espero que você aproveite bastante os conhecimentos que serão apresentados aqui e que você se identifique com a atividade de programação de computadores.

Page 9: PROGRAMAÇÃO DE COMPUTADORES

Conceitos de programação

Page 10: PROGRAMAÇÃO DE COMPUTADORES

Você, no seu dia-a-dia, executa várias tarefas que estão divididas em outras tarefas menores, mesmo sem você perceber. O ser humano tem a capacidade que aprender uma determinada tarefa e combiná-la com outras tarefas para executar uma tarefa maior e, até mesmo, melhorar a execução de uma tarefa que lhe foi ensinada.

O computador não tem a mesma capacidade de recombinar tarefas ou executar uma tarefa de forma diferente daquela que lhe foi ensinada. Por isto, quando se pretende ensinar o computador a executar uma tarefa, devemos listar todos os passos que o computador deverá seguir e não podemos deixar nem sequer um pequeno detalhe sem ser definido porque o computador não consegue tirar conclusões próprias e entender que faltou um passo e desta forma executá-lo mesmo sem ter sido solicitado.

Na programação de computadores você aprenderá um conjunto de comandos básicos que o computador sabe executar. Na tarefa de programação você utilizará estes comandos básicos para criar uma sequência de comandos que o computador executará e que o levará a resolver um determinado problema.

Você pode estar pensando: se eu tenho que ensinar tudo para o computador porque hoje eu ligo o computador e utilizo vários programas e eu não tive que ensiná-lo? A resposta é que você, até agora, somente utilizou programas que outras pessoas fizeram. Com os conhecimentos trabalhados aqui você poderá criar seus próprios programas.

Nesta unidade trabalharemos os conceitos iniciais que levarão você a entender como os computadores executam tarefas e como você deverá raciocinar para informar ao computador quais comandos ele deverá executar para solucionar um determinado problema.

Page 11: PROGRAMAÇÃO DE COMPUTADORES

1. Raciocínio Lógico

Podemos definir a lógica como a arte de pensar e o raciocínio como a forma mais complexa do pensamento. Portanto o raciocínio lógico é a forma correta e ordenada de raciocinar para resolver um problema.

Quando queremos ensinar alguém a resolver um problema precisamos dizer para ele qual é o raciocínio lógico deverá ser seguido e é exatamente isto que você fará o computador.

2. Comunicação do raciocínio lógicoPara comunicarmos para outra pessoa como raciocinamos para resolver um problema temos que transcrever nosso raciocínio para alguma forma de comunicação que seja entendida por nosso interlocutor: verbal, escrita, gráfica, mímica, multimídia...

Para transmitir bem nosso raciocínio lógico temos que organizar os passos que utilizamos para resolver um problema em uma sequência correta.

Exemplo:

A gaveta está fechada.

A caneta está dentro da Gaveta.

Temos que abrir a gaveta para depois pegar a caneta.

Quando nosso interlocutor é um computador temos apenas a forma escrita para nos comunicar e existe uma linguagem própria para fazer esta comunicação porque não podemos utilizar o português, ou outra linguagem utilizada para comunicação entre humanos, porque estas linguagens têm um conjunto muito grande de palavras, muitas com o mesmo significado ou com significado ambíguo e estes dois fatos impossibilitam a utilização destas linguagens na comunicação do ser humano com o computador.

Page 12: PROGRAMAÇÃO DE COMPUTADORES

A Atividade 1 nos dará uma idéia da dificuldade de se utilizar uma linguagem livre para comunicar o raciocínio.

ATIVIDADE 1

Vamos realizar uma atividade onde você tem que comunicar um raciocínio lógico a outra pessoa para resolver o problema da Torre de Hanói(FORBELLONE.2010.p12).

Nesta atividade você tem três hastes, identificadas pelas letras a, b e c, e três discos de tamanhos diferentes, identificados pelos números 1, 2 e 3. Conforme figura abaixo:

O problema consiste em mover os três discos da haste a para a haste b ou c, seguintes as seguintes regras:

_ Pode-se mover um disco de cada vez para qualquer haste.

_Não se pode colocar, em momento algum, um disco maior sobre um disco menor.

Primeiro você precisa conseguir resolver o problema para depois comunicar para outra pessoa qual foi o raciocínio lógico que você utilizou. Então a sua primeira tarefa é resolver problema, criando o seu raciocínio lógico.

Mãos à obra.

Agora que você já conseguiu resolver o problema você precisa comunicar o seu raciocínio para outra pessoa resolver o problema sem ter que raciocinar, seguindo apenas o seu raciocínio lógico. Para tanto você utilizará um texto em português de forma livre, do jeito que você entende que fique mais claro.

Envie o seu texto para seu tutor.

Agora refaça o texto utilizando o seguinte padrão de frases para descrever as ações que resolverão o problema:

Mova Disco X para torre Y

onde X e Y devem ser substituídos pelo número do disco e o numero da torre, respectivamente.

Encaminhe o novo texto a seu tutor.

Page 13: PROGRAMAÇÃO DE COMPUTADORES

Veja que após a definição de uma linguagem padrão os textos ficaram mais enxutos, mais claros e todos conseguiriam executar os comandos e resolver o problema seguindo os passos que você descreveu.

Percebemos então que se faz necessário padronizarmos uma linguagem para comunicar um raciocínio lógico, principalmente quando o interlocutor for uma máquina.

3. Linguagens de Programação

Diante desta necessidade, foram desenvolvidas linguagens próprias para comunicação de um raciocínio lógico de uma pessoa para a um computador. Estas linguagens são conhecidas como linguagens de programação e alguns exemplos são: Java, Pascal, Delphi, C, C#, C++, PHP, dentre várias outras.

Todas as linguagens mais utilizadas pelos programadores no Brasil não foram criadas por empresas brasileiras e por isto todas elas utilizam o Inglês para representar os comandos que comporão o programa que você irá criar, mas não se preocupe se o seu Inglês não está muito afinado porque o conjunto de palavras em inglês que você utilizará é pequeno.

A linguagem de programação que nós escolhemos para ser utilizada neste material é o C++.

As linguagens de programação têm um conjunto de comando que você escreve e que são traduzidos para uma outra linguagem que é a linguagem realmente executada pelo computador. O programa que você escreve é chamado de código fonte e o arquivo que é executado pelo computador é chamado de código executável. O processo que cria o código executável, a partir do código fonte, é chamado de compilação e é executado por um programa chamado de compilador, por isto você já pode ter ouvido alguém falar: estou utilizando o Compilador do C++. Ele está utilizando um programa no qual ele digita comandos(código fonte), utilizando as regras impostas pela linguagem C++, e o programa gera um código executável, que o computador irá executar.

Você passará agora a desempenhar uma atividade com a qual não está familiarizado, ou seja, escrever um programa, compilar e ver o computador executar.

Apresentaremos na próxima unidade o programa que você utilizará para escrever seu código fonte, compilar e executar. O programa que escolhemos se chama Dev C++.

Page 14: PROGRAMAÇÃO DE COMPUTADORES

O Ambiente de Programação Dev C++

Page 15: PROGRAMAÇÃO DE COMPUTADORES

Para você começar a desenvolver seus programas será necessária a escolha de um programa que você utilizará para escrever seu código fonte, compilar este código fonte, gerando um código executável, e solicitar que o computador execute o código executável gerado.

Em nossos estudos utilizaremos o programa Dev C++ para esta finalidade, ele não é o único programa que executa esta função. Escolhemos o Dev C++ pela facilidade de obtenção do programa para instalar no computador e pela facilidade de utilização.

Page 16: PROGRAMAÇÃO DE COMPUTADORES

1. Instalando o Dev C++Para instalar o Dev C++ você vai fazer as mesmas operações que você faz quando busca qualquer informação na Internet.

Considerando que a maioria das pessoas já está utilizando o Windows 7, vamos descrever os passos que você deve seguir para instalar o Dev C++ 4.9.9.2 que é próprio para esta versão Windows.

1º - Acesso o site http://www.baixaki.com.br/busca/dev-c-.htm

Siga os passos descritos abaixo:

Escolha essa opção!

Escolha essa opção!

Page 17: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção.

Page 18: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção!

Escolha essa opção!

Escolha essa opção!

Page 19: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção!

Page 20: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção!

Escolha essa opção!

Escolha essa opção!

Page 21: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção!

Escolha essa opção!

Escolha essa opção!

Page 22: PROGRAMAÇÃO DE COMPUTADORES

Escolha essa opção!

Escolha essa opção!

Page 23: PROGRAMAÇÃO DE COMPUTADORES

Pronto seu Dev C++ 4.9.2.2 já está instalado e configurado.

Page 24: PROGRAMAÇÃO DE COMPUTADORES

2. Escrevendo seu primeiro programaAgora que o seu Dev C++ já está instalado vamos orientá-lo a escrever seu primeiro código fonte, compilar e executar.

Preste muita atenção porque esta será sua rotina ao longo dos nossos trabalhos.

Para iniciar os trabalhos no Dev C++, abra o programa, conforme descrito abaixo:

Na tela seguinte escolha as seguintes opções: Arquivo → Novo → Projeto

Page 25: PROGRAMAÇÃO DE COMPUTADORES

Na tela abaixo escolha Console Application e dê um nome para o seu programa.

Page 26: PROGRAMAÇÃO DE COMPUTADORES

Na tela seguinte mande salvar.

Aparecerá a tela abaixo, onde você criará seus programas.

Page 27: PROGRAMAÇÃO DE COMPUTADORES

Você deve começar a escrever seus programa nesta tela, na linha abaixo do caracter {

Você deve estar se perguntando: como vou criar um programa se não conheço nenhum comando do C++ ?

Você está certo. Pois isto iremos começar a ensinar os comandos básicos do C++ que lhe permitirão criar os primeiros programa.

Page 28: PROGRAMAÇÃO DE COMPUTADORES

Comando de Saída,

Constantes e Variáveis,

Comando de Entrada,

Expressões Aritméticas.

Page 29: PROGRAMAÇÃO DE COMPUTADORES

Nesta unidade vamos apresentar os primeiros comandos que você utilizará para programar um computador com a linguagem C++ e utilizando o programa Dev C++. A cada comando que for apresentado iremos mostrar um exemplo, mostrando como escrever o programa e qual o resultado ele produzirá na tela do computador. A leitura desta unidade deve ser feita com um computador do lado, com o Dev C++ instalado, para que você possa ir testando os comandos conforme solicitado no material. Este processo será muito interessante e interativo pois você poderá verificar como cada programa é executado. Não deixe de resolver os exercícios apresentados porque este conteúdo somente será assimilado com a prática.

Chegou a hora de começarmos a programar o computador.

Vamos lá !

Page 30: PROGRAMAÇÃO DE COMPUTADORES

1.Comando de Saída

Em algoritmo é preciso representar a troca de informações que ocorrerá entre o mundo da máquina e o nosso mundo, para tanto, devemos utilizar comandos de entrada e saída. Comandos de entrada são aqueles que permitem que nós repassemos informações para um computador, utilizando o teclado, mouse ou outro dispositivo de entrada e comandos de saída são os comandos que são utilizados para que o computador escreva uma informação em algum dispositivo que permita que o ser humano leia, como vídeo, impressora, dentre outros. Em algoritmo esses comandos representam apenas a entrada e a saída da informação, independe do dispositivo utilizado (teclado, discos, impressora, vídeo, celular, palm, MP4...), mas sabemos que nas linguagens de programação essa independência não existe, ou seja, nas linguagens de programação temos comandos específicos para cada tipo de unidade de Entrada/Saída.

Inicialmente exploraremos o comando de saída para escrever um texto na tela do computador, posteriormente exploraremos os comandos para escrever e ler variáveis.

A partir deste ponto, a cada comando que estudarmos, será apresentada a sintaxe deste comando em Algoritmo e em C++.

Sintaxe é a forma como o comando deve ser escrito, ou seja, as regras que devem ser seguidas na utilização do comando.

Você deverá segui-las à risca.

Em nossos exemplos trabalharemos sempre com o comando que provoca a escrita de uma informação no vídeo do computador.

Para que o computador escreva uma frase no vídeo basta utilizar um comando que, em algoritmo recebe o nome de escreva e em C++, é chama-se cout.

Sintaxe do comando

Algoritmo C++escreva(“texto”); cout << “texto”;

EXEMPLO DE UTILIZAÇÃO DO COMANDO

Algoritmo C++inicio escreva(“Licenciatura em Informatica”);fim

{cout << “licenciatura em Informática”;system(“PAUSE”);return EXIT_SUCCESS;}

Page 31: PROGRAMAÇÃO DE COMPUTADORES

Você já pode se acostumar com o ; no final de cada comando pois todos os comandos em algoritmo ou C++ terminam com ;

Resultado da execução do programa em C++

No exemplo acima o texto “Licenciatura em Informática” apareceu na tela porque o computador executou o comando cout << “licenciatura em Informática”; . O texto “Pressione qualquer tecla para continuar” foi resultado da execução do comando system("PAUSE"); , este comando tem como finalidade manter a informação no vídeo até que se pressione alguma tecla, se este comando não for colocado no programa, o computador vai escrever a frase e fechar a tela, não sendo possível visualizar o que foi escrito.

O comando return EXIT_SUCCESS; deve ser mantido no programa, não é necessário entender sua função neste momento, mas todo o programa desenvolvimento no Dev C++ 4.9.2.2 deve ter este comando no final.

Page 32: PROGRAMAÇÃO DE COMPUTADORES

Vamos trabalhar ?

Agora você vai escrever o programa exemplo, compilar e executar para visualizar no seu computador a tela acima.

1º Passo

Execute os passos descritos no item 2 da Unidade 2, até chegar na tela abaixo:

Observe que o Dev C++ já traz alguns comandos que você deve manter no programa. Escreva na primeira linha abaixo do { o comando cout << "Licenciatura em Informatica"; .

A tela deve ficar conforme abaixo:

Page 33: PROGRAMAÇÃO DE COMPUTADORES

Em C++ no tipo de projeto que utilizaremos não existem acentos por isto a o texto que está sendo escrito pelo comando cout não tem acentuação.

Agora você deve compilar o programa, para tanto repita os passos abaixo:

Escolha a opção executar -> compilar conforme tela abaixo:

Page 34: PROGRAMAÇÃO DE COMPUTADORES

Se for a primeira vez que você está compilando o programa será solicitado que você informe um nome para seu programa, digite um nome qualquer.

Se programa estiver escrito da forma correta aparecerá a tela abaixo:

Click no botão fechar

Escolha agora a opção executar – executar, conforme tela abaixo:

Page 35: PROGRAMAÇÃO DE COMPUTADORES

Agora aparecerá no vídeo o resultado do seu programa, ou seja, a tela abaixo:

Para que o computador pule de linha entre o texto do comando cout e o texto colocado pelo comando system(“PAUSE”); reescreva o comando cout colocando no final o comando \n, conforme abaixo:

cout << "Licenciatura em Informatica\n";

Compile o programa novamente e execute. Agora a tela ficará conforme abaixo:

Page 36: PROGRAMAÇÃO DE COMPUTADORES

No processo de compilação se você não seguir a sintaxe do comando de forma correta aparecerá uma indicação da linha onde você cometeu o erro, neste caso você deve retornar ao programa, corrigir o erro e repetir o processo de compilação, até que o total de erros seja 0.

Para exemplificar vou alterar o comando cout << trocando por cout <, veja como fica a tela com resultado da compilação:

O Dev C++ está indicando que existe um erro na linha do comando cout, colocando esta linha com fundo vermelho. Você deve corrigir o erro e compilar o programa novamente, para depois executá-lo.

Page 37: PROGRAMAÇÃO DE COMPUTADORES

Sempre que você cometer um erro de sintaxe de algum comando o Dev C++ o informará e você deverá repetir os passos descritos acima.

Exercício de Fixação

3.1 - Faça um programa no Dev C++ que escreva no vídeo um texto com , no mínimo, 10 linhas. Pode ser uma receita, uma letra de música, um poema, ou qualquer outro texto. Cada linha que você quiser que o computador escreva no vídeo deve utilizar um comando cout << , lembre-se de colocar o comando \n no final de cada texto. Compile e execute programa.

2.Constantes

(FORBELLONE. 2010. p.16) Um dado é constante quando não sofre nenhuma variação no decorrer do tempo, ou seja, seu valor é constante desde o início até o fim da execução do algoritmo.

Em programação quando temos um número, uma letra, uma palavra ou uma frase que queremos utilizar em alguma parte do algoritmo ou programa, dizemos que temos uma constante caracter. Quando estamos utilizando um número, dizemos que estamos trabalhando com uma constante numérica.

Exemplo 1O comando cout<< 10; escreverá o numero 10 no vídeo, dizemos portanto que o comando escreverá a constante numérica 10 no vídeo.

Se estamos trabalhando com uma letra, uma palavra ou uma frase dizemos que estamos trabalhando com uma constante caracter.

Exemplo 2

Page 38: PROGRAMAÇÃO DE COMPUTADORES

O comando cout << "Licenciatura em Informatica\n"; escreverá esta frase no vídeo, dizemos portanto que o comando escreverá a constante caracter “Licenciatura em Informatica” no vídeo.

Como pode ser verificado nos exemplos acima, a constante caracter deve ser representada entre aspas, já as constantes numéricas não podem estar entre aspas.

Exemplo 3Exemplos de constantes: “aluno estudioso”100“Sala de Aula”100,40

3.Variáveis

(FORBELLONE. 2010. p.16) Um dado é classificado como variável quando tem uma possibilidade de ser alterado, em algum instante no decorrer do tempo, ou seja, durante a execução do algoritmo em que é utilizado, o valor do dado sofre alteração ou o dado é dependente da execução em um certo momento ou circunstância.

Para ajudá-lo a entender o conceito de variável faremos uma analogia com o conceito de variável em uma equação do 2º Grau, onde Ax² + Bx + C = 0, os itens A,B e C são variável pois a cada equação que é escrita este valor se modifica.

Exemplo 4Na equação 2x2 + 1x + 3 = 0 , A=2; B=1 e C=3Na equação 5x² + 4x + 1 = 0, A=5; B=4 e C=1Ou seja as letras A, B e C representam partes da equação que variam de uma equação para outra, por isto são variáveis. Já os itens x2 , X e 0 não mudam por isto são constantes.

O conceito de variável é muito importante em programação porque o programador trabalha todo o tempo com variáveis.

Em programação uma variável representa uma posição na memória de um computador cujo conteúdo pode variar ao longo da execução do programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.

Para podermos utilizar uma variável temos que definir duas informações que definirão a variável: seu nome e o tipo de informação que esta variável irá armazenar.

O nome dado a uma variável deve seguir as seguintes regras:

_ É composto de uma sequência de caracteres.

_ O primeiro deve ser uma letra.

_ Os demais podem ser letras e números. Pode-se utilizar o _ .

Page 39: PROGRAMAÇÃO DE COMPUTADORES

_ Não podem ser utilizados caracteres especiais como +,-,/,*,(,[,{ pois são utilizados

nos programas para outras finalidades.

_ Não se usa acentuação.

_ Não pode conter espaços no nome.

_ Os nomes das variáveis podem ser escritos com letras maiúsculas ou minúsculas,

mas você deve optar pela letra maiúscula.

Exemplo 5 Nomes Permitidos: ALUNO, NOTA_ALUNO,CASA1, APTO3Nomes não Permitidos: 1ALUNO, NOTA( ), CASA*,NOME[ALUNO], NOME DO ALUNO

Para facilitar a leitura do algoritmo foram criadas as seguintes regras:

As palavras que são padronizadas nos algoritmos e programas são chamadas de palavras-chaves e devem ser com letra minúscula.

Uma palavra-chave não pode ser utilizada como nome de variável, ou seja, não pode existir, por exemplo, uma variável com o nome cout porque, como já sabemos, este é um comando do C++ que escreve uma informação no vídeo.

Toda variável tem um TIPO que define os valores que podem ser armazenados nela.

Em nosso material utilizamos apenas 3 tipos de variáveis:

inteiro( armazena números inteiros)

real(armazena números reais)

caracter(armazena sequência de letras e números)

No C++ os tipos são:

int equivale ao inteiro

double equivale ao real

string equivale ao caracter

Quando você precisar criar uma variável para utilizar em um programa dizemos que você vai declarar uma variável.

Page 40: PROGRAMAÇÃO DE COMPUTADORES

Estrutura do comando de declaração de variáveis

tipo LISTA DE IDENTIFICADORES;

Exemplo 6

ALGORITMO C++caracter ALUNO, PROFESSOR;real NOTA1, NOTA2;inteiro FALTAS;

string ALUNO, PROFESSOR;double NOTA1, NOTA2;int FALTAS;

ATRIBUIÇÃO DE VALORES A VARIÁVEIS.

Após a declaração de uma variável ela ainda não tem valor armazenado.

Para se colocar um valor em uma variável deve utilizar um Comando de Atribuição.

Estrutura do comando de atribuição de variáveis:

Algoritmo : C++

Nome da Variável valor; Nome da Variável = valor;

Exemplo 7:

ALGORITMO C++NOTA1 8.5;NOTA2 7.5;ALUNO “Maria”; FALTAS 12;PROFESSOR “Lyvimar”;

NOTA1 = 8.5;NOTA2 = 7.5;ALUNO = “Maria”; FALTAS = 12;PROFESSOR = “Lyvimar”;

No nosso exemplo 6 foram declaradas 5 variáveis, no exemplo 7 foram atribuídos valores para estas variáveis, mas todas estas informações estão na memória do computador e não são visíveis para quem está utilizando o computador.

Page 41: PROGRAMAÇÃO DE COMPUTADORES

Para que o conteúdo de uma variável seja visualizado por uma pessoa, você deve utilizar o comando que escreve este conteúdo no vídeo.

Nós já utilizamos o comando cout para escrever no vídeo constantes do tipo caracter(textos) e numérico(números), agora utilizaremos o comando cout para escrever o conteúdo das variáveis.

Exemplo 8:

ALGORITMO C++escreva(NOTA1);escreva(NOTA2);escreva(ALUNO); escreva(FALTAS);escreva(PROFESSOR);

cout << NOTA1;cout << NOTA2;cout << ALUNO; cout << FALTAS;cout << PROFESSOR;

Se fizermos um programa que reuni os exemplos 6, 7 e 8, teremos seguintes código:

#include <cstdlib>

#include <iostream>

using namespace std;

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

{

string ALUNO, PROFESSOR;

double NOTA1, NOTA2;

int FALTAS;

NOTA1 = 8.5;

NOTA2 = 7.5;

Page 42: PROGRAMAÇÃO DE COMPUTADORES

ALUNO = "Maria";

FALTAS = 12;

PROFESSOR = "Lyvimar";

cout << NOTA1;

cout << NOTA2;

cout << ALUNO;

cout << FALTAS;

cout << PROFESSOR;

system("PAUSE");

return EXIT_SUCCESS;

}

O resultado no vídeo do computador será:

Note que os conteúdos das variáveis foram escritos juntos uns dos outros, na mesma linha. Como já vimos, para resolver este problema utilizamos o comando \n . Quando utilizamos o comando \n em um comando cout que estava escrevendo um texto, colocamos o \n dentro do texto, mas agora que estamos escrevendo o conteúdo de uma variável temos que colocar os sinais << para separar o nome da variável do comando \n .

Para realizar estas alterações o programa ficará conforme abaixo:

#include <cstdlib>

Page 43: PROGRAMAÇÃO DE COMPUTADORES

#include <iostream>

using namespace std;

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

{

string ALUNO, PROFESSOR;

double NOTA1, NOTA2;

int FALTAS;

NOTA1 = 8.5;

NOTA2 = 7.5;

ALUNO = "Maria";

FALTAS = 12;

PROFESSOR = "Lyvimar";

cout << NOTA1 << “\n”;

cout << NOTA2<< “\n”;

cout << ALUNO<< “\n”;

cout << FALTAS<< “\n”;

cout << PROFESSOR<< “\n”;

system("PAUSE");

return EXIT_SUCCESS;

}

Agora, o resultado no vídeo do computador será:

Page 44: PROGRAMAÇÃO DE COMPUTADORES

Resolvemos o problema dos conteúdos das variáveis ficarem juntos, mas ainda temos um problema neste programa: o que significam estas informações?

O usuário do programa verá apenas os números e nomes que apareceram no vídeo e não saberá que informações estes dados representam.

Para resolver este problema colocamos no comando cout um texto, antes do conteúdo da variável, para esclarecer ao usuário do programa o que os dados representam.

Com esta mudança o programa ficará conforme abaixo:

#include <cstdlib>

#include <iostream>

using namespace std;

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

{

string ALUNO, PROFESSOR;

double NOTA1, NOTA2;

int FALTAS;

NOTA1 = 8.5;

NOTA2 = 7.5;

ALUNO = "Maria";

Page 45: PROGRAMAÇÃO DE COMPUTADORES

FALTAS = 12;

PROFESSOR = "Lyvimar";

cout <<” 1a VA: “ << NOTA1 << “\n”;

cout <<” 2a VA: “ << NOTA2<< “\n”;

cout <<” Nome do Aluno: “ << ALUNO<< “\n”;

cout <<” Faltas no semestre: “ << FALTAS<< “\n”;

cout <<” Nome do Professor: “ << PROFESSOR<< “\n”;

system("PAUSE");

return EXIT_SUCCESS;

}

Agora, o resultado no vídeo do computador será:

Agora o programa está correto !

Apenas para exemplificar como podemos alternar nomes de variáveis e textos em um mesmo comando cout vamos alterar o programa substituindo todos os comandos cout por um único comando, que escreve uma frase no vídeo, utilizando todas as variáveis definidas.

Veja como ficou o programa:

#include <cstdlib>

#include <iostream>

Page 46: PROGRAMAÇÃO DE COMPUTADORES

using namespace std;

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

{

string ALUNO, PROFESSOR;

double NOTA1, NOTA2;

int FALTAS;

NOTA1 = 8.5;

NOTA2 = 7.5;

ALUNO = "Maria";

FALTAS = 12;

PROFESSOR = "Lyvimar";

cout <<”A professora “ << PROFESSOR<< “ atribuiu “ << NOTA1 << “ na 1a VA e “<< NOTA2

<<“na 2a VA, para a aluna “ << ALUNO << “\n”;

system("PAUSE");

return EXIT_SUCCESS;

}

E agora como ficou o resultado no vídeo do computador:

Page 47: PROGRAMAÇÃO DE COMPUTADORES

4.Comando de Entrada

Você já utilizou vários programas nos quais você deveria informar dados seus para um programa: em um cadastro em um site de compras, respondendo uma pesquisa, escrevendo um e-mail. Em todas estas situações você estava realizando uma entrada de dados para o computador processar e você poderia se perguntar: onde o computador armazena estas informações?

Agora você já sabe: ele armazena em variáveis.

Nos exemplos anteriores nós atribuímos valores fixos a uma variável, ou seja, no programa anterior, ele sempre escrevera a mesma frase porque os conteúdos das variáveis serão sempre os mesmos.

Para permitir que o usuário do programa possa colocar os valores que desejar nas variáveis utilizamos o comando de entrada.

Sintaxe do comando

Algoritmo C++leia(nome da variável); cin << nome da variável;

Vamos alterar o programa que estamos desenvolvendo para que o conteúdo das variáveis não seja fixo, mas sim informado pelo usuário:

Page 48: PROGRAMAÇÃO DE COMPUTADORES

Veja como ficou o programa:

#include <cstdlib>

#include <iostream>

using namespace std;

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

{

string ALUNO, PROFESSOR;

double NOTA1, NOTA2;

int FALTAS;

cout << "1a VA: ";cin >> NOTA1;

cout << "2a VA: ";cin >> NOTA2;

cout << "Nome do aluno: ";cin >> ALUNO;

cout << "Faltas: ";cin >> FALTAS;

cout << "Professor: ";cin >> PROFESSOR;

cout <<"o professor " << PROFESSOR<< " atribuiu " << NOTA1 << " na 1a VA e "<< NOTA2

<<" na 2a VA, para o aluno " << ALUNO << "\n";

system("PAUSE");

return EXIT_SUCCESS;

}

Após e compilação e execução deste programa, o vídeo do computador ficará conforme abaixo:

Page 49: PROGRAMAÇÃO DE COMPUTADORES

O computador executou o comando cout << "1a VA: "; e escreveu 1ª VA: no vídeo, depois executou o comando cin >> NOTA1; e está esperando que você digite qual o valor da 1a VA, como esta variável foi definida do tipo double você pode digitar números com parte decimal, mas utilize o . para separar os decimais e não a , porque o C++ utiliza a notação americana.

Vamos digitar uma nota 6.5 e teclar ENTER

O computador solicitará que seja digita da 2a VA, depois o nome do aluno, as faltas e o nome do professor.

Para cada informação que você digitar deve ser pressionada a tecla ENTER para o programa continuar executando os outros comandos do programa.

Nas variáveis Aluno e Professor, digite nomes sem espaço em branco, porque o comando cin não aceita espaços em branco.

Depois que você digitar todas as informações que o computador solicitar ele escreverá a frase com as informações que você digitou, conforme tela abaixo:

Page 50: PROGRAMAÇÃO DE COMPUTADORES

Exercício de Fixação

4.1 - Assinale os nome de variáveis validos:

a) (X) b) U2 c)AH! d)”ALUNO” e)#55

f) KM/L g)UYT h)ASDRUB i)AB*C j)email@ l) PRODUTO

l) P{0} m)B52 n)RUA o)CEPp)dia/mês

4.2 – Execute os passos abaixo para definir e utilizar variáveis.

a) Declare variáveis para armazenar as informações abaixo:

salário de um funcionário

idade de um aluno

placa de um veiculo

CPF de uma pessoa

peso de uma pessoa

nome de um funcionário

nota em uma disciplina

médio final

nome de um escola

nome do diretor da escola

nome de um aluno

Page 51: PROGRAMAÇÃO DE COMPUTADORES

b) Agora atribua valores fictícios para estas variáveis e escreva seu conteúdo no vídeo do computador.

c) Altere o programa para ler as variáveis e depois escrever uma frase utilizando algumas das variáveis criadas.

Page 52: PROGRAMAÇÃO DE COMPUTADORES

5.Expressões Aritméticas

(FORBELLONE. 2010. P18) Denominamos expressões aritméticas aquelas cujos operadores são aritméticos e cujos operandos são constantes ou variáveis do tipo inteiro ou real.

Você já aprendeu a declarar variáveis, atribuir um valor para uma variável, ler uma variável e escreve o conteúdo de uma variável. Agora veremos que podemos atribuir para uma variável não apenas um valor fixo :

NOTA 8.3

mas também valores de expressões:

NOTA 3 + 4;

Para trabalhar com expressões aritméticas você precisa saber quais os sinais e palavras são utilizadas, em algoritmo e em C++, para representar as operações básicas da matemática e algumas operações especiais.

OPERADORES ARITMÉTICOS BÁSICOS

Os operadores básicos podem têm a mesma representação em Algoritmo e em C++

OPERADOR

FUNÇÃO EXEMPLO

+ Soma A + B, X – 4, 2 + 3

- Subtração BRUTO-LIQUIDO, H-2, 5-11

* Multiplicação BASE*ALTURA, 2*PI, 6 * 9

/ Divisão PESO/ALT, 15 / 3

( ) Prioridade 4 * (2+3),

Obs: em C++ a divisão( / ) de números inteiros resulta em um número inteiro com o quociente da divisão.

OPERADORES ARITMÉTICOS ESPECIAIS EM ALGORITMO

OPERADOR

FUNÇÃO SIGNIFICADO EXEMPLO

pot(X,Y) Potenciação X elevado a Y pot(2,3)

Page 53: PROGRAMAÇÃO DE COMPUTADORES

rad(X) Radiciação Raiz quadrada de x Rad(9)

Mod Resto da Divisão 9 mod 4 = 1

OPERADORES ARITMÉTICOS ESPECIAIS EM C++

OPERADOR

FUNÇÃO SIGNIFICADO EXEMPLO

pow(X,Y) Potenciação X elevado a Y pow(2,3)

sqrt(X) Radiciação Raiz quadrada de x sqrt(9)

% Resto da Divisão 9 % 4 = 1

PRIORIDADE DE OPERADORES

O C++ utiliza a mesma prioridade de operadores da matemática, conforme representado abaixo.

( ) mais internos

pot rad

* / mod

+ -

Page 54: PROGRAMAÇÃO DE COMPUTADORES

Em C++ temos muitas utilizações dos operadores aritméticos, principalmente nas estruturas de repetição, que serão vistas na Unidade 5, as operações de somar ou diminuir 1 de uma variável, Ex: X = X + 1 e Y = Y – 1. Para facilitar a escrita destes comandos foram criadas as operações de autoincremento(++) e autodecremento(--) que têm o mesmo efeito mas com texto menor. Com estas operações as expressões ficaram assim: X++ e Y-- . Nós utilizamos estes comandos em alguns exemplos deste material.

Exemplo 9:

ALGORITMO C++MEDIA NOTA1*PESO 1 + NOTA2 * PESO2 / (PESO1 + PESO2);AREA BASE * ALTURA;AREA 3.14 * pot(RAIO,2);X ALTURA MOD 2;

MEDIA = NOTA1*PESO 1 + NOTA2 * PESO2 / (PESO1 + PESO2);AREA = BASE * ALTURA;AREA = 3.14 * pot(RAIO,2);X = ALTURA MOD 2;

Vamos alterar o nosso programa exemplo para escrever uma frase contendo a média das notas.

Veja como ficará o programa:#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ string ALUNO, PROFESSOR; double NOTA1, NOTA2; int FALTAS; cout << "1a VA: ";cin >> NOTA1; cout << "2a VA: ";cin >> NOTA2; cout << "Nome do aluno: ";cin >> ALUNO; cout << "Faltas: ";cin >> FALTAS; cout << "Professor: ";cin >> PROFESSOR; MEDIA = (NOTA1 + NOTA2) /2; cout<<ALUNO << " a sua media com o professor " << PROFESSOR << " foi " << MEDIA<<"\n"; system("PAUSE"); return EXIT_SUCCESS;}

Após e compilação e execução deste programa, o vídeo do computador ficará conforme abaixo:

Page 55: PROGRAMAÇÃO DE COMPUTADORES

Agora que você já sabe alguns comandos do C++ está na hora de programar, ou seja, escrever seus programas para resolver problemas reais.

Como você ainda não está acostumado a fazer um programa vamos mostrar um exemplo, passo-a-passo.

Suponha que você tem que fazer o programa abaixo:

Faça um programa para ler o Raio a e Altura de um cilindro e calcular a seu volume.Dado: V (volume) = Pi x R2 x H, sendo Pi : 3,1416, R:Raio e H:Altura.

EXEMPLO DA TELA DO COMPUTADORInforme os dados da cilindro(em metros)Raio: 10Altura: 5 O volume do cilindro é de 1570,8M3.

Obs: os dados em negrito serão informado via teclado. Os valores em itálico são conteúdos de variáveis.

Vamos construir o programa que calcula o volume de um cilindro e que produzirá o resultado na tela conforme solicitado.

1º Passo : vamos declarar as variáveis que utilizaremos.

_ precisamos de uma variável para armazenar o raio da base, chamaremos esta variável RAIOBASE e definiremos esta variável como real(double).

Page 56: PROGRAMAÇÃO DE COMPUTADORES

_ precisamos de uma variável para armazenar a altura do cilindro, chamaremos esta variável ALTURA, também será do tipo real(double).

_ o valor de Pi poderia ser utilizado diretamente na expressão que calcula o volume mas vamos criar uma variável para conter este valor, chamaremos esta variável de PI.

_ o resultado da expressão será armazenado em uma outra variável real que chamaremos de VOLUME.

O comando que declara estas variáveis está escrito abaixo:

double RAIOBASE, ALTURA, PI, VOLUME;

2º Passo : Vamos atribuir de 3.14 para a variável PI.

PI = 3.14;

3º Passo : Vamos ler as variáveis RAIOBASE e ALTURA, este comandos devem produzir um resultado na tela do computador conforme solicitado.

cout<<”Informe os dados da cilindro(em metros)/n”; cout<<”Raio:” ; cin >> RAIOBASE; cout<<”Altura:” ; cin >> ALTURA;

4º Passo: por fim devemos calcular o volume, armazenado-o na variável VOLUME, e depois escrever o conteúdo desta variável.

VOLUME = PI * pow(RAIOBASE,2) * ALTURA; cout<<” O volume do cilindro e’ de “<<VOLUME << “M3\n”;

Reunindo os quatro passos em um programa teremos o programa abaixo:

#include <cstdlib>#include <iostream>#include <math.h>using namespace std;int main(int argc, char *argv[]){ double RAIOBASE, ALTURA, PI, VOLUME; PI = 3.14; cout<<"Informe os dados da cilindro(em metros)/n"; cout<<"Raio:" ; cin >> RAIOBASE; cout<<"Altura:" ; cin >> ALTURA; VOLUME = PI * pow(RAIOBASE,2) * ALTURA; cout<<" O volume do cilindro e' de "<<VOLUME << "M3 \n"; system("PAUSE"); return EXIT_SUCCESS;}

Como você pode observar, no inicio do programa temos o comando

#include <math.h>

Page 57: PROGRAMAÇÃO DE COMPUTADORES

este comando é necessário para que o C++ consiga executar o comando pow(RAIOBASE,2);

Compile e execute este programa informando os valores do raio e da altura que o programa calculará e mostrará na tela o volume do cilindro.

Na tela abaixo o programa foi executado e foi informado um raio de 10 e uma altura de 200, mas quando você estiver testando o programa você poderá digitar quaisquer valores para o raio e a altura que o programa calculará o volume.

Exercício de Fixação

Page 58: PROGRAMAÇÃO DE COMPUTADORES

5.1 – Supondo que A, B, C são variáveis de tipo inteiro, com valores iguais a 5, 10 e -8, e uma variável real D, com valor de 1.5, quais os resultados das expressões aritméticas a seguir?

a) 2 * A % 3 – C

b) sqrt(-2 * C) / 4

c) ((20 / 3) / 3) + pot (2,8)/2

d)(30 / 4 * pot(3,3))* -1

e)pow(-C,2) + (D * 10)/A

f )srqt(pow(A,B/A)) + C * D

FAÇA PROGRAMAS EM C++ PARA RESOLVER OS PROBLEMAS ABAIXO.

5.2 – Ler as seguintes despesas de uma escola: Funcionários, material de consumo, água e telefone. Ler as receitas oriundas dos seguintes itens : mensalidades, festas e doações. Calcula e escrever valor do lucro da escola.

5.3 – Ler o salário bruto de uma professor e escrever o salário líquido, considerando os seguintes impostos: primeiro 12% de INSS depois 15% de Imposto de renda.

5.4 - Ler o nome de um aluno e as faltas que ele tem nos meses de fevereiro, marco, abril, maio e junho. Calcular o percentual de faltas, considerando que em um semestre o total de aulas ministrada é 60. Depois deve ser impresso o nome do aluno e o percentual de faltas.

EXEMPLO DA TELA DO COMPUTADOR

Nome do Aluno: ANTONIO

Informe as faltas:

Fev: 4

Mar: 2

Abr: 2

Mai: 1

Jun: 0

ANTONIO você tem 15% de faltas.

Seu limite e’ 25%.

Obs: os dados em negrito serão informado via teclado. Os valores em itálico são conteúdos de variáveis.

Page 59: PROGRAMAÇÃO DE COMPUTADORES

5.5 - Faça um algoritmo que calcula a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, em que são fornecidos a altura(H) e o raio(R ) desse cilindro.

Sabendo que:

_ a lata de tinta custa R$ 50,00.

_ cada lata contém 5 litros.

_ cada litro de tinta pinta 3 metros quadrados

_ a área do cilindro é dada por área da base + área lateral.

_ área da base = PI * R2

_ área lateral = 2 * PI * R * H

_ PI = 3,14

EXEMPLO DA TELA DO COMPUTADOR

Informe os dados da cilindro(em metros)

Raio: 10

Altura: 5

Serão gastas 41,87 latas de tinta.

O custo total será de R$ 2093,33.

Obs: os dados em negrito serão informado via teclado. Os valores em itálico são conteúdos de variáveis.

Page 60: PROGRAMAÇÃO DE COMPUTADORES

EXPRESSÕES LÓGICAS,

ESTRUTURAS DE CONTROLE

Page 61: PROGRAMAÇÃO DE COMPUTADORES

Nesta unidade iremos apresentar as expressões lógicas e a estrutura de controle: estrutura sequencial e condicional. A estrutura condicional permite ao computador tomar uma decisão que dependerá da avaliação da expressão lógica. No estudo das expressões lógicas utilizaremos os conceitos vistos no componente curricular de Lógica Matemática. A estrutura condicional é muito importante em programação de computadores pois permite ao computador executar um ou mais comandos somente se uma condição for verdadeira ou falsa. Quando você digita uma senha errada em um site de um banco, por exemplo, e o programa diz que sua senha está errada está sendo utilizada uma estrutura condicional. Quando você está informando seus dados em um cadastro pela internet, você não informa um dado obrigatório e o computador emite um aviso de que você tem que digitar este dado, também está sendo utilizada uma estrutura condicional.

Agora que você já sabe a importância desta estrutura vamos estudá-la.

Page 62: PROGRAMAÇÃO DE COMPUTADORES

1.Expressões Lógicas

(FORBELLONE.2010.p21)Denominamos expressões lógicas aquelas cujos operadores são lógicos ou relacionais e cujos operandos são relações ou variáveis ou constantes lógicas.

As expressões lógicas são compostas de operadores relacionais e constantes numéricas ou caracter. O resultado de uma expressão lógica é sempre (V)Verdadeiro ou (F)Falso, conforme visto em lógica matemática.

OPERADORES RELACIONAIS:

Utilizamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo. Os valores a serem comparados são representados por constantes, variáveis ou expressões aritméticas.

OPERADORES RELACIONAIS EM ALGORITMO

OPERADOR

FUNÇÃO EXEMPLO

= Igual a 3 = 3(V), X = Y(F)> Maior que 3 > 4(F), X < Y(V)>= Maior ou igual 3 >= 2(V), (X + 4) >= Y(V)< Menor 1 < 2 (V), (Y*2) < Y(F)<= Menor ou igual (X+1) <= Y(V)<> Diferente X <> Y (V)

Considerar: X = 2, Y = 3 ; O resultado da expressão lógica está representado pelas letras V ou F entre parênteses.

OPERADORES RELACIONAIS EM C++

OPERADOR

FUNÇÃO EXPRESSÃO

= = Igual a 3 = = 3(V), X = = Y(F)> Maior que 3 > 4(F), X < Y(V)>= Maior ou igual 3 >= 2(V), (X + 4) >=

Y(V)< Menor 1 < 2 (V), (Y*2) < Y(F)<= Menor ou igual (X+1) <= Y(V)!= Diferente X != Y (V)

Considerar: X = 2, Y = 3. O resultado da expressão lógica está representado pelas letras V ou F entre parênteses.

Page 63: PROGRAMAÇÃO DE COMPUTADORES

As diferenças entre a simbologia dos operadores em algoritmo e em C++ estão apenas nos operadores de igualdade que em algoritmo é “=” e em C++ é “==” (duas vezes o sinal de igual) e na desigualdade que em algoritmo é “<>” e em C++ é “!=”. Cuidado com estas diferenças, principalmente a igualdade.

O computador é capaz de avaliar uma expressão lógica e determinar se ela é verdadeira ou falsa, seguindo sempre criterios lógicos e nunca criterios subjetivos.

Exemplo 1

4 > 6 → Falso4 >= 4 → Verdadeiro“Pedro” = “Paulo” → Falso“Gisele” = “Bonita” → Falso , mesmo que Gisele seja bonita, porque o computador só consegue comparar as constantes caracter “Gisele” e “Bonita” e estas constantes são diferentes. “Junho” = “junho” → Falso porque uma palavra está com J e outra com j portanto são diferentes.

OPERADORES LÓGICOS:

Em Lógica Matemática foram apresentados os Conectivos Lógicos e / ou. Em programação chamaremos estes elementos de Operadores Lógicos.

(FORBELLONE.2010.p22) Os operadores lógicos são utilizados para formar novas proposições lógicas compostas a partir de outras proposições lógicas mais simples.

OPERADORES LÓGICOS EM ALGORITMO

OPERADOR FUNÇÃO EXEMPLOe Conjunção (X=2) e (Y=4)(F)ou Disjunção (X=2) ou (Y=4)(V)

Considerar: X = 2, Y = 3

OPERADORES LÓGICOS EM C++

OPERADOR FUNÇÃO EXEMPLO&& Conjunção (X=2) && (Y=4)(F)|| Disjunção (X=2) || (Y=4)(V)

Considerar: X = 2, Y = 3

Page 64: PROGRAMAÇÃO DE COMPUTADORES

TABELA VERDADE

Relembrando os conceitos de Lógica Matemática, apresentamos a Tabela Verdade dos operadores lógicos e e ou .

A B A e B A ou BF F F FF V F VV F F VV V V V

PRIORIDADE DE OPERADORES

( ) mais internos

e ou

PRIORIDADE ENTRE TODOS OS OPERADORES

( ) mais internos

Operadores Aritméticos

Operadores Relacionais

Operadores Lógicos

Exemplo 2Considerando que foram declaradas as variáveis X e Y do tipo inteiro e que foram atribuídos os seguintes valores: X = 2 e Y = 3, veja como o computador avaliaria a expressão lógica abaixo.

( X > 2 e Y=2) ou (X <= 2 e Y+1 = 4) F e F V e V F ou V

VComo podemos verificar o resultado da analise de toda a expressão lógica é Verdadeiro (V).Esta expressão em C++ seria escrita da seguinte forma:

EXERCÍCIOS

4.1 – Determine os resultados obtidos na avaliação das expressões lógicas abaixo, sabendo que A, B, C contêm, respectivamente, os valores 2, 7, 3.

a) A > B ou B > C

b) A * 3 >= B -1 e C / 3 < A

Page 65: PROGRAMAÇÃO DE COMPUTADORES

c) pot(x,3) + 2 <> C * 3 + 1

d) (2*C)MOD C = 0

e)A+B+C = C+B+A

Observação : Fique atento às prioridades das operações e dos operadores.

4.2 – Escreva as expressões lógicas do item 4.1 em C++.

Page 66: PROGRAMAÇÃO DE COMPUTADORES

2.Estruturas de Controle

2.1 – Estrutura Sequencial

Em um algoritmo, ou em um programa, primeiro se declara as variáveis depois são listados os comandos que solucionarão o problema proposto e estes comandos sempre são executados na sequência na qual são listados.

inicio

inteiro : VAR1,VAR2;

leia(VAR1);

VAR 2 VAR1 * 5;

escreva(VAR2);

fim.

2.1 – Estrutura Condicional

Em vários momentos precisaremos alterar a ordem de execução sequencial do programa e criar um programa que tenha um conjunto de comandos que somente serão executados se uma expressão lógica for avaliada pelo computador como Verdadeira.

Para atender esta necessidade foram criados os comandos condicionais.

A estrutura condicional permite que um grupo de comandos somente execute caso alguma condição (expressão lógica) seja satisfeita. Caso a condição não seja Verdadeira pode-se executar outro bloco de comandos.

O comando que permite esta execução condicional é denominado:

se-então-senão em algoritmo

if-then-else em C++

Page 67: PROGRAMAÇÃO DE COMPUTADORES

Estrutura do Comando se

se ( expressão lógica )

então

início

sequência de comandos que será executada se a expressão lógica retornar V

fim;

senão

início

sequência de comandos que será executada se a expressão lógica retornar F)

fim;

fimse;

Observação: A estrutura senão pode não aparecer no comando se, mas o então sempre deve existir.

Estrutura do Comando if(em C++)

if (expressão lógica ) { sequência de comandos que será executada se a expressão lógica retornar V) } else { sequência de comandos que será executada se a expressão lógica retornar F) }

Observações:

A palavra se é substituída pela palavra if.

Não se coloca palavra para substituir o então porque é definido que o bloco que está logo abaixo do if será executado caso a expressão lógica testada seja verdadeira.

Page 68: PROGRAMAÇÃO DE COMPUTADORES

As palavras inicio e fim; são substituídas pelo { e } .

Exemplo 2

ALGORITMO inicio caracter : ALUNO1, ALUNO2; inteiro : IDADE1, IDADE2; escreva(“Nome do aluno 1:”); leia( ALUNO1); escreva(“Idade do aluno 1:”); leia( IDADE1); escreva(“Nome do aluno 2:”); leia( ALUNO2); escreva(“Idade do aluno 2:”); leia( IDADE2); se (IDADE1 > IDADE2) então inicio escreva (ALUNO1, “ é mais velho que ”, ALUNO2); fim; senão inicio escreva( ALUNO1, “ é mais jovem que ”, ALUNO2); fim; fimse;fim.

C++{ string ALUNO1, ALUNO2; int IDADE1, IDADE2; cout << “Nome do aluno 1:”; cin >> ALUNO1); cout << “Idade do aluno 1:”; cin >> IDADE1; cout << “Nome do aluno 2:”; cin >> ALUNO2); cout << “Idade do aluno 2:”; cin >> IDADE2; if (IDADE1 > IDADE2) { cout << ALUNO1<< “ é mais velho que ”<<ALUNO2; } else { cout << ALUNO1<< “ é mais jovem que ”<<ALUNO2; } }

Obs: no final das linhas do se, então , senão e inicio não coloca-se ;

O programa do Exemplo 2 lê o nome e a idade de dois alunos e escreve quem é mais velho. Digite este programa no DEV C++, compile, execute e observe como o comando if é executado. Depois troque o sinal > por <, compile e execute novamente.

Page 69: PROGRAMAÇÃO DE COMPUTADORES

EXERCÍCIOS

4.3 – Faça um programa para testar as expressões lógicas do exercício 4.1 e escrever Verdadeiro se a expressão lógica for verdadeira e Falso se não for verdadeira, conforme exemplo abaixo, feito para a expressão lógica da letra a do exercício 4.1.

#include <cstdlib>#include <iostream>#innclude < math.h>using namespace std;int main(int argc, char *argv[]){ int A,B,C; A = 2; B = 7; C = 3; if(A > B || B > C) { cout << "Verdadeiro\n"; } else { cout << "Falso\n"; } system("PAUSE"); return EXIT_SUCCESS;}

Agora troque a expressão lógica pelas expressões das letras b,c,d,e do exercício 4.1, compile e execute o programa para verificar se ele vai escrever Falso ou Verdadeiro e se este resultado confere com o que você fez no exercício 4.1

4.4 – Faça um programa para ler 2 números inteiros e escreve se o primeiro numero é maior que o segundo ou se o segundo é maior que o primeiro.

4.5 – Inclua no programa abaixo um comando if para dizer se o aluno foi APROVADO ou REPROVADO, considere que o aluno foi aprovado se a média for maior ou igual a 5.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ string ALUNO, PROFESSOR; double NOTA1, NOTA2, MEDIA;

Page 70: PROGRAMAÇÃO DE COMPUTADORES

int FALTAS; cout << "1a VA: ";cin >> NOTA1; cout << "2a VA: ";cin >> NOTA2; cout << "Nome do aluno: ";cin >> ALUNO; cout << "Faltas: ";cin >> FALTAS; cout << "Professor: ";cin >> PROFESSOR; MEDIA = (NOTA1 + NOTA2) /2; cout << ALUNO << " a sua media na disciplina do professor " << PROFESSOR << " foi " << MEDIA<<"\n";

// INCLUA O COMANDO if AQUI

system("PAUSE"); return EXIT_SUCCESS;}

Page 71: PROGRAMAÇÃO DE COMPUTADORES
Page 72: PROGRAMAÇÃO DE COMPUTADORES

COMPOSIÇÃO DE COMANDOS se-então-senão

Dentro da sequência de comandos que são executados no então ou senão pode existir outra estrutura se-então-senão. Esta possibilidade é conhecida como ninhos de se.

EXEMPLO 3

ALGORITMOinicio caracter : ALUNO1, ALUNO2; inteiro : IDADE1, IDADE2; escreva(“Nome do aluno 1:”); leia( ALUNO1); escreva(“Idade do aluno 1:”); leia( IDADE1); escreva(“Nome do aluno 2:”); leia( ALUNO2); escreva(“Idade do aluno 2:”); leia( IDADE2); se (IDADE1 = IDADE2) então inicio escreva (ALUNO1, “ tem a mesma idade de ”, ALUNO2); fim; senão inicio se (IDADE1 > IDADE2) então inicio escreva (ALUNO1, “ é mais velho que ”, ALUNO2); fim; senão inicio escreva( ALUNO1, “ é mais jovem que ”, ALUNO2); fim; fim; fimse;fim.

C++{ string ALUNO1, ALUNO2; int IDADE1, IDADE2; cout << “Nome do aluno 1:”; getline(cin,ALUNO1); cout << “Idade do aluno 1:”; cin >> IDADE1; cout << “Nome do aluno 2:”; getline(cin,ALUNO2); cout << “Idade do aluno 2:”; cin >> IDADE2; if (IDADE1 == IDADE2) { cout << ALUNO1<< “ tem a mesma idade de ”<<ALUNO2; } else { if (IDADE1 > IDADE2) { cout << ALUNO1<< “ é mais velho que ”<<ALUNO2; } else { cout << ALUNO1<< “ é mais jovem que ”<<ALUNO2; } }}

Page 73: PROGRAMAÇÃO DE COMPUTADORES

Apresentaremos agora alguns exemplos de programas que utilizam o comando de if

EXEMPLO 4

Programa que lê dois números e e escreve quem é maior ou se eles são iguais.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int NUMERO1, NUMERO2; cout << "Informe o primeiro numero: " ; cin >> NUMERO1; cout << "Informe o segundo numero: " ; cin >> NUMERO2; if(NUMERO1 > NUMERO2) { cout << "O primeiro numero e' maior que o segundo numero\n"; } else if(NUMERO2 > NUMERO1) { cout << "O segundo numero e' maior que o primeiro numero\n"; } else { cout << "Os numeros sao iguais\n"; } system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 5

Programa que lê uma senha , compara com uma senha predefinida e informa se a senha informada está correta ou não.

# #include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ string SENHA_DIGITADA, SENHA_DEFINIDA; SENHA_DEFINIDA = "UEGLI"; cout << "Senha: " ; cin >> SENHA_DIGITADA; if(SENHA_DIGITADA == SENHA_DEFINIDA) { cout << "Senha Correta\n"; } else { cout << "Senha Incorreta\n"; } system("PAUSE"); return EXIT_SUCCESS;}

Page 74: PROGRAMAÇÃO DE COMPUTADORES

EXERCÍCIOS

4.4 – Faça um programa que leia o nome de um aluno e suas duas notas bimestrais, calcule a média(MEDIA1) e escreva a situação do aluno conforme condições abaixo:

Se a MEDIA1for menor ou igual a 3 deve ser escrito REPROVADO

Se a MEDIA1for maior ou igual a 7 deve ser escrito APROVADO.

Se a MEDIA1ficar entre 3 e 7 deve ser lida a nota da Prova Final e calculado a MEDIA2 (MEDIA2=MEDIA1+NOTAPROVAFINAL/2). Se a MEDIA2 for maior ou igual a 5 deve ser escrito APROVADO, caso contrário deve ser escrito REPROVADO.

4.5 - Escreva um algoritmo para ler as medidas dos três lados de um triângulo e escrever se este triângulo é EQUILÁTERO, ISÓSCELES ou ESCALENO

EQUILÁTERO (3 lados iguais)

ISÓSCELES (2 lados iguais)

ESCALENO (Todos os lados diferentes)

Page 75: PROGRAMAÇÃO DE COMPUTADORES

COMANDOS DE REPETIÇÃO

Page 76: PROGRAMAÇÃO DE COMPUTADORES

Nas unidades anteriores apresentamos as estruturas: sequencial e condicional. Na estrutura sequencial o programa é executado, linha a linha, de cima para baixo, conforme nossa convenção de leitura. Já na estrutura condicional o programa não executa todos os comandos, pois um bloco de comando pode ou não ser executado, dependendo de uma expressão lógica que representa uma condição. Nesta unidade iremos trabalhar com a estrutura de repetição que permitirá que você desenvolva um programa que tenha a capacidade de repetir um bloco de comandos várias vezes, esta estrutura é utilizada, por exemplo, quando é emitido o extrato da sua conta corrente no caixa automático de um banco, o comando que imprime uma linha da sua movimentação financeira é repetido várias vezes para imprimir toda a movimentação do período que você solicitou. Conforme visto na unidade anterior, quando você digita uma senha errada, o programa utiliza a estrutura condicional para verificar que a senha está errada e utilizará a estrutura de repetição para solicitar que você digite a senha novamente, até que seja digitada a senha correta.

A estrutura de repetição também está presente em praticamente todo programa que você já utilizou e você sempre utilizará esta estrutura para resolver problemas através de programas de computador.

Vamos iniciar os estudos sobre esta estrutura, essencial na programação de computadores.

Page 77: PROGRAMAÇÃO DE COMPUTADORES

1.Estruturas de Repetição

A estrutura de repetição permite que uma sequência de comandos, que chamamos de Bloco de Comandos, seja executada repetidamente enquanto uma condição, representada por uma expressão lógica, seja verdadeira. Na unidade anterior o comando se analisava uma expressão lógica para decidir se executava o bloco de comando do então ou do senão, conforme o resultado da expressão lógica fosse verdadeiro ou falso. Aqui na estrutura de repetição o resultado da expressão lógica também será analisada pelo computador mas ele utilizará este resultado para decidir se continuará repetindo a execução do bloco de comandos ou se encerrará a repetição.

Em algoritmo existem três comandos que implementam estruturas de repetição: para, enquanto e repita. Neste material iremos trabalhar com os comandos para e enquanto. Esses comandos em C++ são chamados de for e while e nós nos dedicaremos a explicar mais detalhadamente, inclusive com exemplos, os comandos em C++.

No ambiente da programação de computadores uma repetição de um bloco de comandos é conhecido como laço e nós utilizaremos este termo neste material para que você possa se familiarizar com os jargões da informática.

2.O Comando para

O comando para repete uma sequência de comandos por um número de vezes já conhecida. Por exemplo: quero que o computador repita este bloco de comandos por 3 vezes, ou por 1000 vezes, ou seja, eu já sei quantas vezes o bloco de comandos deverá ser repetido.

Estrutura do parapara VARIÁVEL de numero inicial até numero final passo número para incremento faça

Bloco de comandos;

fimpara;

Page 78: PROGRAMAÇÃO DE COMPUTADORES

Estrutura do for(em C++) for(exp1; exp2; exp3) { bloco de comandos; }

Onde

exp1 = atribui o valor inicial da variável de controle do laço.

exp2 = verifica se a expressão lógica que controla o laço ainda é verdadeira, quando ela se tornar falsa a repetição (laço) se encerra e o programa continua a execução a partir do próximo comando após o fim da estrutura de repetição, ou seja, após o } .

exp3 = aumenta ou diminui a valor da variável de controle.

Esta estrutura de repetição irá repetir os comandos que estão entre os caracteres { } .

Na linha onde escrevemos o comando for não se coloca o ; porque o for é uma estrutura que somente é acaba com o }

Poderíamos tentar explicar o funcionamento do comando for de forma textual, porém o seu entendimento fica mais claro quando mostramos na prática como esta estrutura funciona e para tanto apresentaremos um exemplo de um comando for simples e comentaremos o resultado que ele provocará quando o programa for compilado e executado.

EXEMPLO 1

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]) { int VARIAVEL_CONTROLE; for(VARIAVEL_CONTROLE=1;VARIAVEL_CONTROLE<4;VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1) { cout << VARIAVEL_CONTROLE << "\n"; } system("PAUSE"); return EXIT_SUCCESS;}

Page 79: PROGRAMAÇÃO DE COMPUTADORES

O programa acima, após compilado e executado, escreverá na tela do computador os números de 1 a 3.

Vamos entender por que.

Como nós já verificamos em outros programas, os comandos que são executados pelo programa são aqueles que vêem logo após o { .

No caso do programa do exemplo 1 o primeiro comando é :

int VARIAVEL_CONTROLE;

Este comando define uma variável, do tipo inteiro, que por enquanto ainda não tem valor.

Depois da definição da variável vem o comando for:

for(VARIAVEL_CONTROLE=1;VARIAVEL_CONTROLE<=4;VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1) { cout << VARIAVEL_CONTROLE << "\n"; }

Vamos entender como este comando é processado pelo computador.

1 - Quando o computador encontra este comando em um programa, a primeira ação que ele toma é executar o comando VARIAVEL_CONTROLE=1 colocando o valor iniciar na variável de controle do laço que no nosso exemplo foi chamada de VARIAVEL_CONTROLE, mas poderia ter qualquer nome que o programador desejasse. Portanto o valor da variável VARIAVEL_CONTROLE será o número 1.

2 - O computador avalia o resultado da expressão de controle do laço (VARIAVEL_CONTROLE<4) que é verdadeiro porque a VARIAVEL_CONTROLE tem o valor 1 que é menor que 4.

Page 80: PROGRAMAÇÃO DE COMPUTADORES

3 - Como o resultado da expressão de controle de laço é verdadeiro ele executa o comando que está entre { } ( cout << VARIAVEL_CONTROLE << "\n"; )e escreve o valor da VARIAVEL_CONTROLE na tela do computador, aparecendo o numero 1.

4 - Quando o computador encontra o caracter } , ele entende que a estrutura de repetição chegou ao fim e retorna na linha onde está o comando for . Aqui está a diferença desta estrutura pois, nas outras estruturas, o computador executaria o primeiro comando depois do } .

5 – Quando o computador retorna na linha do for ele executa o comando VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1 e acrescenta 1 no valor da VARIAVEL_CONTROLE.

6 - Agora a VARIAVEL_CONTROLE tem o valor 2, o computador testa a expressão lógica VARIAVEL_CONTROLE<4(2<4) que continua verdadeira e executa o comando cout << VARIAVEL_CONTROLE << "\n"; novamente, escrevendo o número 2 na tela do computador e pulando para linha debaixo, por causa do << "\n";

7 – O computador encontra o } retorna novamente na linha do for e executa o comando VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1 ;

8 - Agora a VARIAVEL_CONTROLE tem o valor 3, o computador testa a expressão lógica VARIAVEL_CONTROLE<4 (3<4) que continua verdadeira e executa o comando cout << VARIAVEL_CONTROLE << "\n"; novamente, escrevendo o número 3 na tela do computador .

9 – O computador encontra o } retorna novamente na linha do for e executa o comando VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1 ;

10 - Agora a VARIAVEL_CONTROLE tem o valor 4, o computador testa novamente a expressão lógica VARIAVEL_CONTROLE<4 (4<4). Agora o resultado da expressão lógica é falso porque 4 não é menor que 4. O computador então encerra a execução do comando for e executa o próximo comando após o } . Pois isto não escreve 4 na tela do computador.

11. Como o próximo comando após o } é o system("PAUSE"); o computador escreve a frase Pressione qualquer tecla para continuar e fica esperando você pressionar qualquer tecla para ele continuar executando o programa.

12 - O último comando que o computador executa é o comando return EXIT_SUCCESS; que encerra o programa.

Resumindo, o comando for na primeira execução atribui valor inicial, definido na exp1, para a variável de controle e verifica se o resultado da expressão lógica(exp2) é verdadeiro. Na segunda execução, e nas demais, ele aumenta, ou diminui, o valor da variável de controle, conforme o que estiver especificado na exp3 e verifica se o resultado da expressão lógica(exp2) continua verdadeiro, enquanto o resultado desta expressão for verdadeiro o comando continua repetindo o bloco de comandos que está entre { } , se a expressão lógica(exp2) nunca for falsa o computador executará o bloco de comandos indefinidamente, este problema é conhecido como Laço Eterno.

Page 81: PROGRAMAÇÃO DE COMPUTADORES

Agora que você entendeu como funciona o comando for vamos ver alguns outros exemplos de programas.

EXEMPLO 2 - Programa que escreve os número pares de 2 a 10.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]) { int VARIAVEL_CONTROLE; for(VARIAVEL_CONTROLE=2;VARIAVEL_CONTROLE<4;VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+2) { cout << VARIAVEL_CONTROLE << "\n"; } system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 3 - Programa que soma todos os números entre 1 e 1000 e escreve o valor calculado..

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]) { int VARIAVEL_CONTROLE, SOMA; SOMA = 0 ; for(VARIAVEL_CONTROLE=1;VARIAVEL_CONTROLE<=1000;VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1) { SOMA=SOMA+VARIAVEL_CONTROLE; } cout << "Soma dos numeros entre 1 e 1000 = " << SOMA << "\n)"; system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 4 - Programa que cria um laço eterno.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]) { int VARIAVEL_CONTROLE;

Page 82: PROGRAMAÇÃO DE COMPUTADORES

SOMA = 0 ; for(VARIAVEL_CONTROLE=1;VARIAVEL_CONTROLE>0;VARIAVEL_CONTROLE=VARIAVEL_CONTROLE+1) { cout << VARIAVEL_CONTROLE << "\n"; } system("PAUSE"); return EXIT_SUCCESS;}

No exemplo 4 a VARIAVEL_CONTROLE começa com 1 e, a cada execução do laço, é aumentada de 1, ou seja, ela terá os valores 1,2,3,4,5,6, ....., como o laço executará enquanto expressão lógica (VARIAVEL_CONTROLE>0) for verdadeira o laço nunca se encerrará porque a VARIAVEL_CONTROLE será sempre > 0.

Quando você digitar o Exemplo 4 no Dev C++ , compilar e executar o programa executará o laço indefinidamente e você deverá forçar o cancelamento da execução. Para tanto pressione a tecla Ctrl e, com a tecla Ctrl pressionada, pressione também a tecla C, esta combinação de teclas irá cancelar a execução do programa.

Da mesma forma que o comando if poderia ter dento dos blocos de comando outro comando if, no comando for também podemos ter um comando for dentro do bloco de comandos de outro comando for. No exemplo 5 utilizamos este recurso para escrever um programa que escreve todas as possíveis combinações de números da megasena.

EXEMPLO 5 - PROGRAMA QUE MOSTRA NA TELA DO COMPUTADOR TODAS AS COMBINAÇÕES DA MEGASENA.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int A,B,C,D,E,F; for (A=1;A<=60;A=A+1) for(B=A+1;B<=60;B=B+1) for(C=B+1;C<=60;C=C+1) for(D=C+1;D<=60;D=D+1) for(E=D+1;E<=60;E=E+1) for(F=E+1;F<=60;F=F+1) cout <<A<<"-"<<B<<"-"<<C<<"-"<<D<<"-"<<E<<"-"<<F<< "\n"; system("PAUSE"); return EXIT_SUCCESS;}

No exemplo 5 o programa executará o laço controlado pela variável F até o final. Quando este laço acabar ele volta no laço controlado pela variável E, depois D, C, B e finalmente o laço controlado pela variável A.

Quando você digitar o Exemplo 5 no Dev C++ , compilar e executar vão aparecer várias combinações de números. Como a quantidade é muito grande, quando você se cansar de ver a execução do programa pressione a tecla Ctrl e, com a tecla Ctrl

Page 83: PROGRAMAÇÃO DE COMPUTADORES

pressionada, pressione também a tecla C, esta combinação de teclas irá cancelar a execução do programa.

EXERCÍCIOS

Escreva o que aparecerá na tela do computador com a execução dos comandos for abaixo.Se você chegar a conclusão que o programa entrará em laço eterno, escreva apenas LAÇO ETERNO:5.1 for ( I =1; I<10; I = I +3) cout << I;5.2 for (I =100; I< 150; I = I -5) cout << I * 2;5.3 for ( I =1; I<5; I = I +1) for(J=1;J<=2;J=J+1) cout << I << “-“<< J;5.4 for ( I =1; I<3; I = I +1) for(J=1;J<=2;J=J+1) for(K=0;K<2;K=K+1) cout << I << “-“<< J << “-“<<K;

Faça programas para:

5.5– Escrever os números entre 0 e 10.5.6– Escrever os números impares entre 0 e 10.5.7– Escrever os números múltiplos de 3 entre 0 e 100.5.8– Calcular e escrever a soma de todos os números entre 0 e 200.5.9- Calcular e escrever a soma dos números pares que estão entre 0 e 150.5.10- Calcular e escrever a soma dos números impares que estão entre 0 e 70.

Page 84: PROGRAMAÇÃO DE COMPUTADORES

3.Comando enquanto

O comando enquanto repete uma sequência de comandos por um número de vezes que não é fixo como no comando para. Como o próprio nome sugere o comando enquanto repete um bloco de comandos enquanto o resultado de uma expressão lógica for verdadeiro.

No comando enquanto não existe uma expressão para colocar um valor iniciar na variável de controle e também não existe a expressão que altera o valor da variável de controle, como existia no comando for. A inicialização da variável deve ser feita antes do comando enquanto e a atualização do valor da variável de controle deve ser feita dentro do bloco de comandos que será repetido.

Outra diferença do comando enquanto é que a expressão lógica que define até quando o laço deverá ser executado pode conter mais de uma variável e mais de uma operação lógica, mas no final retornará verdadeiro ou falso, conforme visto no comando se.

Estrutura do enquantoenquanto expressão lógica faça

bloco de comandos;

fimenquanto;

Estrutura do while(em C++) while (expressão lógica) { bloco de comandos; }

Continuando a nossa forma de trabalho vamos apresentar os exemplos do enquanto apenas em C++ com o comando while.

O mesmo laço que é produzido com o comando for pode ser produzido também com o comando while, porém para cada situação um comando é mais recomendado. O comando while é muito utilizado para fazer o que é conhecido em programação como consistência de dados, ou seja, a pessoa informa um valor para uma variável que não é válido e o programa fica em um laço enquanto a pessoa não digita o valor correto. O exemplo 6 mostra um programa que solicita uma senha e repete o bloco de comando que lê a variável novamente enquanto a senha não for a correta. Definimos que a senha é UNUEAD.

Page 85: PROGRAMAÇÃO DE COMPUTADORES

EXEMPLO 6 - programa solitada uma senha e só sai do laço quando for digitada a senha correta.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ string SENHA_CORRETA, SENHA_DIGITADA; SENHA_CORRETA = "UNUEAD"; SENHA_DIGITADA = " "; while(SENHA_DIGITADA != SENHA_CORRETA) { cout << "Senha: " ; cin >> SENHA_DIGITADA; } cout << " O programa saiu do comando while, porque a senha foi digitada corretamente\n"; system("PAUSE"); return EXIT_SUCCESS;}

Vamos entender este programa !

1 - O primeiro comando após o { defini duas variáveis do tipo string, ou seja, variáveis que

podem conter letras e números.

2 - A senha “UNUEAD” é armazenada na variável SENHA_CORRETA.

3 - A variável SENHA_DIGITADA recebe um espaço em branco, apenas para conter um valor

inicial.

4 - O comando while começa a ser executado

4.1 A expressão lógica SENHA_DIGITADA != SENHA_CORRETA é avaliada e o resultado

é Verdadeiro, porque o conteúdo da variável SENHA_CORRETA (UNUEAD) é diferente(!=) do

conteúdo da variável SENHA_DIGITADA(“ “).

4.2 O bloco de comando que estão sendo repetidos pelo comando while é

executado:

4.2.1 – O comando cout << “Senha: “; é executado e computador escreve

Senha: na tela.

4.2.2 – O comando cin >> SENHA_DIGITADA; é executado e o cursor fica

piscando na frente do texto Senha: para que a pessoa possa informar a senha.

4.3 O programa encontra o } e retorna no item 4.1, se a senha digitada ainda for

diferente da senha correta os passos 4.2.1 e 4.2.2 são executados novamente. Se a senha

digitada for igual à senha correta, o programa sai do laço e vai para item 5.

5 - O programa, após sair do laço, executa do comando cout << " O programa saiu do

comando while, porque a senha foi digitada corretamente\n"; e o texto é escrito na

tela do computador.

Page 86: PROGRAMAÇÃO DE COMPUTADORES

6- Como o próximo comando é o system("PAUSE"); o computador escreve a frase

Pressione qualquer tecla para continuar e fica esperando você pressionar qualquer tecla

para ele continuar executando o programa.

7 - O último comando que o computador executa é o comando return EXIT_SUCCESS; que

encerra o programa.

Vamos a alguns exemplos de utilização do comando while.

EXEMPLO 7 - programa que lê um número e não sai do laço enquanto este número não estiver entre 2 e 5, inclusive.

include <cstdlib>

#include <iostream>using namespace std;int main(int argc, char *argv[]){ int NUMERO; NUMERO = 0; while(NUMERO<2 || NUMERO > 5) { cout << "Informe um número entre 2 e 5 :" ; cin >> NUMERO; } cout << " PARABENS !!! O numero esta entre 2 e 5\n"; system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 8 - programa que escreve os numero pares entre 2 e 20.

include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int NUMERO; NUMERO = 2; while(NUMERO<=10) { cout << NUMERO << "\n"; NUMERO = NUMERO + 2; } system("PAUSE"); return EXIT_SUCCESS;}No exemplo 8, se não existisse o comando NUMERO = NUMERO + 2; o programa entraria em um laço eterno, imprimindo sempre o número 2 na tela do computador.

Page 87: PROGRAMAÇÃO DE COMPUTADORES

EXERCÍCIOS

Escreva o que aparecerá na tela do computador com a execução dos comandos while abaixo.Se você chegar a conclusão que o programa entrará em laço eterno, escreva apenas LAÇO ETERNO:5.11 I = 1; while (I<20) {

cout << I; I = I + 5; }

5.12 I = 1;T=0; while (I<20) { I = I + 5; T = T + 10; } cout << I; cout << T;

5.13 I = 1; while (I<=2) { for(J=I;J<=2;J=J+1) cout << I << “-“<< J; I = I + 1; }

Faça programas para:

5.14– Ler e escrever vários números inteiros enquanto não for digitado o numero -1.5.15- Ler e escrever várias letras enquanto não for digitado a letra F.5.16- Simular uma calculadora que soma vários números. Este programa deve ler um número em uma variável real, acumular seu valor em outra variável real e voltar para ler outro número, esta repetição será feita enquanto não for digitado o número 0. Quando o número 0 for digitado o programa deve sair da repetição e imprimir o valor acumulado.5.17– Altere o programa do exercício 5.16 para realizar as 4 operações básicas(+ - * / ), ou seja o programa deve ler um número e uma operação, depois deve efetuar a operação informada utilizando como operandos o número lido e o conteúdo da variável que está acumulando o resultado. A cada operação o resultado parcial deve ser informado.

Page 88: PROGRAMAÇÃO DE COMPUTADORES

Exemplo da tela do computador:

1 +3 -> 4-2 -> 2*3 - > 6

Page 89: PROGRAMAÇÃO DE COMPUTADORES

VETOR E MATRIZ

Page 90: PROGRAMAÇÃO DE COMPUTADORES

Na unidade III apresentamos o conceito de Variável que é uma posição na memória do computador que pode armazenar apenas um valor, numérico ou caracter, e que recebe um nome para poder ser utilizada. Em algumas situações precisaremos armazenar na memória do computador várias informações e, portanto, necessitaremos de muitas variáveis para armazenar estes valores. Nestes casos a utilização de variáveis convencionais tornará o programa muito extenso e de difícil compreensão. Para resolver este problema a informática utilizou os conceitos de matriz de álgebra linear para armazenar muitas informações em uma única estrutura de dados e não mais em várias variáveis. Nesta unidade apresentaremos a estrutura que chamamos de Vetor que é uma matriz linha, ou seja, tem apenas uma linha e várias colunas e a estrutura de Matriz, com várias linhas e várias colunas.

Você verá que esta estrutura facilitará a elaboração de programas que precisam trabalhar com muitas informações.

Page 91: PROGRAMAÇÃO DE COMPUTADORES

1.VETOR

Antes de definirmos o que é um vetor vamos ilustrar uma situação na qual a utilização de variáveis convencionais não traz bons resultados no programa.

Imagine que você precisa fazer um programa que leia 20 notas de provas, calcule a média das notas e escreva as notas que ficaram acima média. Neste programa teremos que ler todas as notas para calcularmos a média e depois teremos que comparar cada nota com a média, portanto cada nota lida deve ficar armazenada em uma variável, considerando que são 20 notas temos 20 variáveis e todos os comandos que utilizarem estas variáveis serão repetidos 20 vezes.

O programa ficaria conforme o Exemplo 1

EXEMPLO 1- programa que calcula e compara média sem vetor

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ double NOTA1,NOTA2,NOTA3,NOTA4,NOTA5,NOTA6,NOTA7,NOTA8,NOTA9,NOTA10; double NOTA11,NOTA12,NOTA13,NOTA14,NOTA15,NOTA16,NOTA17,NOTA18,NOTA19,NOTA20; double MEDIA; cout << "1a Nota: "; cin >> NOTA1; cout << "2a Nota: "; cin >> NOTA2; cout << "3a Nota: "; cin >> NOTA3; cout << "4a Nota: "; cin >> NOTA4; cout << "5a Nota: "; cin >> NOTA5; cout << "6a Nota: "; cin >> NOTA6; cout << "7a Nota: "; cin >> NOTA7; cout << "8a Nota: "; cin >> NOTA8; cout << "9a Nota: "; cin >> NOTA9; cout << "10a Nota: "; cin >> NOTA10; cout << "11a Nota: "; cin >> NOTA11; cout << "12a Nota: "; cin >> NOTA12; cout << "13a Nota: "; cin >> NOTA13; cout << "14a Nota: "; cin >> NOTA14; cout << "15a Nota: "; cin >> NOTA15;

Page 92: PROGRAMAÇÃO DE COMPUTADORES

cout << "16a Nota: "; cin >> NOTA16; cout << "17a Nota: "; cin >> NOTA17; cout << "18a Nota: "; cin >> NOTA18; cout << "19a Nota: "; cin >> NOTA19; cout << "20a Nota: "; cin >> NOTA20; MEDIA = (NOTA1+NOTA2+NOTA3+NOTA4+NOTA5+NOTA6+NOTA7+NOTA8+NOTA9+NOTA10+ NOTA11+NOTA12+NOTA13+NOTA14+NOTA15+NOTA16+NOTA17+NOTA18+NOTA19+NOTA2)/20; cout << "Media da Turma: " << MEDIA; cout << "Notas acima da media\n"; if(NOTA1>MEDIA) cout<<"NOTA 1 : " << NOTA1<<"\n"; if(NOTA2>MEDIA) cout<<"NOTA 2 : " << NOTA2<<"\n"; if(NOTA3>MEDIA) cout<<"NOTA 3 : " << NOTA3<<"\n"; if(NOTA4>MEDIA) cout<<"NOTA 4 : " << NOTA4<<"\n"; if(NOTA5>MEDIA) cout<<"NOTA 5 : " << NOTA5<<"\n"; if(NOTA6>MEDIA) cout<<"NOTA 6 : " << NOTA6<<"\n"; if(NOTA7>MEDIA) cout<<"NOTA 7 : " << NOTA7<<"\n"; if(NOTA8>MEDIA) cout<<"NOTA 8 : " << NOTA8<<"\n"; if(NOTA9>MEDIA) cout<<"NOTA 9 : " << NOTA9<<"\n"; if(NOTA10>MEDIA) cout<<"NOTA 10 : " << NOTA10<<"\n"; if(NOTA11>MEDIA) cout<<"NOTA 11 : " << NOTA11<<"\n"; if(NOTA12>MEDIA) cout<<"NOTA 12 : " << NOTA12<<"\n"; if(NOTA13>MEDIA) cout<<"NOTA 13 : " << NOTA13<<"\n"; if(NOTA14>MEDIA) cout<<"NOTA 14 : " << NOTA14<<"\n"; if(NOTA15>MEDIA) cout<<"NOTA 15 : " << NOTA15<<"\n"; if(NOTA16>MEDIA) cout<<"NOTA 16 : " << NOTA16<<"\n"; if(NOTA17>MEDIA) cout<<"NOTA 17 : " << NOTA17<<"\n"; if(NOTA18>MEDIA) cout<<"NOTA 18 : " << NOTA18<<"\n"; if(NOTA19>MEDIA) cout<<"NOTA 19 : " << NOTA19<<"\n"; if(NOTA20>MEDIA) cout<<"NOTA 20 : " << NOTA20<<"\n"; system("PAUSE"); return EXIT_SUCCESS;}

Page 93: PROGRAMAÇÃO DE COMPUTADORES

No programa acima percebemos que os comandos que foram utilizados para ler uma nota cout << "1a Nota: "; cin >> NOTA1; foram repetidos 20 vezes.

O comando, descrito abaixo, que testa se a nota esta acima da média também foi repetido 20 vezes.

if(NOTA11>MEDIA) cout<<"NOTA 11 : " << NOTA11<<"\n";

Este fato aumenta muito o tamanho e a legibilidade do programa. Para resolver este problema foi criada uma estrutura de dados que é capaz de armazenar um conjunto de dados do mesmo tipo e que têm a mesmo significado, este tipo de dados é chamado em algoritmo de Vetor, em algoritmo, e em C++ de Array.

Um vetor(array) é um agrupamento de componentes de mesmo tipo dispostos sequencialmente(primeiro, segundo, terceiro, quarto). A referência a um elemento do vetor é feito pelo nome do vetor mais o índice do elemento.

Declaração de vetor em Algorítmo tipo V = vetor[1..n] de inteiros;

V VETORNUMEROS;

Declaração de vetor em C++

int V[n];

Onde : int é o tipo dos elementos do vetor, ou seja, o vetor será composto de números inteiros.V é o nome do vetor.n é o numero de elementos do vetor.

Utilizando a sintaxe acima vamos declarar três vetores(X,Y e Z) : o primeiro para armazenar 20 números inteiros, o segundo para armazenar 10 números reais e o terceiro para armazenar 50 palavras.

int X[20];

double Y[10];

string Z[50];

Page 94: PROGRAMAÇÃO DE COMPUTADORES

Quando estudamos a variáveis, na Unidade III, verificamos que existem quatro operações básicas que fazemos com uma variável:

Operação ExemploDefinir uma variável int IDADE; Atribuir valor a uma variável IDADE = 18;Ler uma variável cin >> IDADE;Escrever uma variável cout << IDADE;

Estas mesmas operações, feitas com a estrutura de vetor, ficariam assim:

Operação ExemploDefinir um vetor de idades int IDADES[3]; Atribuir valores aos elementos do vetor

IDADES[0] = 18;IDADES[1]=40;IDADES[2]=50;

Ler o terceiro elemento do vetor cin >> IDADE[2]; Escrever o primeiro elemento do vetor

cout << IDADE[0];

Fazendo uma representação gráfica de uma variável, apenas para efeitos didáticos, poderíamos representar uma variável comum, do tipo int, por uma caixa onde podemos colocar um número inteiro de cada vez, conforme abaixo.

Comando em C++ Representação Gráfica do Comando

int IDADE;

IDADE

IDADE = 18;18

IDADE

Utilizando a mesma representação para Vetor, um vetor é uma variável que representa várias caixas, do mesmo tipo. Para obtermos o valor de uma das caixas utilizamos o nome do vetor e o índice da caixa.

Comando em C++ Representação Gráfica do Comando

Page 95: PROGRAMAÇÃO DE COMPUTADORES

int IDADES[3];

IDADES

0 1 2

IDADES[1] = 18;

18IDADES

0 1 2

Agora que já entendemos o conceito de Vetor precisamos compreender porque a utilização desta estrutura pode reduzir o tamanho de um programa.

O tamanho do programa é reduzido porque podemos chegar em cada elemento do vetor utilizando o comando de repetição for, estudado na Unidade 5, para gerar o índice do vetor e colocar dentro do bloco de comando do comando for todos os comandos necessários para realizar operações com cada elemento do Vetor, sem termos que escrever os comandos novamente, porque o próprio comando for repetirá o bloco de comandos.

Vamos utilizar um exemplo para ajudar na assimilação deste conceito.

EXEMPLO 2- programa que lê 5 números sem vetor.

include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int NUMERO1,NUMERO2,NUMERO3,NUMERO4,NUMERO5; cout << “Informe o numero 1: “; BLOCO DE COMANDOS QUE SE REPETE cin >> NUMERO1;

cout << “Informe o numero 2: “; cin >> NUMERO2; cout << “Informe o numero 3: “; cin >> NUMERO3; cout << “Informe o numero 4: “; cin >> NUMERO4; cout << “Informe o numero 5: “; cin >> NUMERO5; system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 3- programa que lê 5 numeros com vetor.

include <cstdlib>

Page 96: PROGRAMAÇÃO DE COMPUTADORES

#include <iostream>using namespace std;int main(int argc, char *argv[]){ int NUMEROS[5], INDICE; for(INDICE=0;INDICE<5;INDICE=INDICE+1) { cout << “Informe o numero”<<INDICE<<”: “; cin >> NUMEROS[INDICE]; } system("PAUSE"); return EXIT_SUCCESS;}

O índice do vetor, no C++, começa do 0, portanto se definirmos um vetor V de 3 posições seus índices serão V[0], V[1], V[2]

Comparando o Exemplo 2 e Exemplo 3 percebemos como a utilização de vetores reduz o tamanho dos programas.

Vamos agora analisar o Exemplo 4 que demonstra como fica o programa apresentado no Exemplo 1, agora com a utilização de vetor.

EXEMPLO 4- programa que calcula e compara média com vetor

#include <cstdlib>#include <iostream>

using namespace std;

int main(int argc, char *argv[]){ int INDICE; double NOTAS[20]; double MEDIA,TOTAL; TOTAL = 0; for(INDICE=0;INDICE<20;INDICE=INDICE+1) { cout << INDICE+1 <<"a Nota: " ; cin >> NOTAS[INDICE]; TOTAL = TOTAL + NOTAS[INDICE]; } MEDIA = TOTAL /20; cout << "Media da Turma: " << MEDIA <<"\n"; cout << "Notas acima da media\n"; for(INDICE=0;INDICE<20;INDICE=INDICE+1) {

Page 97: PROGRAMAÇÃO DE COMPUTADORES

if(NOTAS[INDICE] > MEDIA) cout <<"Nota "<< INDICE+1<<": "<<NOTAS[INDICE]<<"\n" ; } system("PAUSE"); return EXIT_SUCCESS;}

Veja como o programa ficou com um código muito menor.

EXERCÍCIOS

6.1- Faça um programa que lê valores de um vetor depois escreve os valores na ordem inversa à que foi lida:

6.2 – Sendo o vetor V igual a :

2 6 8 3 10 9 1 21 33 44

1 2 3 4 5 6 7 8 9 10

E as variáveis X = 2 e Y = 4, escreva o valor correspondente conteúdo do elemento do vetor:

A) V[X+1] B)V[X+Y] C) V[X*4] D)V[V[X]] E)V[V[X]+3]

6.3 – Faça um programa que lê dois vetores de 10 elementos inteiros, some os elementos dos dois vetores(de mesmo índice) em outro vetor e escreva o vetor resultante.

6.4 – Faça um programa que lê um vetor de 20 posições e calcula um 2º vetor onde cada elemento é igual ao quadrado do elemento do primeiro vetor de mesmo índice.

6.5 – Faça um programa que lê o gabarito de uma prova com 10 questões, depois leia as 10 respostas de um aluno e escreva a sua nota, considerando que cada questão vale 1 ponto.

Page 98: PROGRAMAÇÃO DE COMPUTADORES
Page 99: PROGRAMAÇÃO DE COMPUTADORES

2.MATRIZ

Os vetores têm como principal característica a necessidade de apenas um índice para endereçamento – são estruturas unidimencionais. Quando uma estrutura precisar de mais de um índice de endereçamento dizemos que é multidimensional e, em algoritmo, chamamos de matriz.

O conceito de matriz que é utilizado para armazenar informações em informática é o mesmo conceito de matriz da álgebra linear, ou seja, uma tabela de elementos dispostos em linhas e colunas.

Declaração de Matriz em Algorítmo tipo M = matriz [1..n, 1..n, 1..n, ...] de inteiros;

M MATRIZNUMEROS;

Declaração de Matriz em C++

int M[n1][n2];

Onde : int é o tipo dos elementos da matriz, ou seja, a matriz M será composta de números inteiros.M é o nome do vetor.n1 e n2 representa o número de linhas e colunas da matriz.

Em C++ podemos ter matrizes com mais de duas dimensões porém, neste material, trabalharemos apenas com Matriz de duas dimensões(linha e coluna). Os índices da matriz, no C++, começam do 0, portanto se definirmos uma Matriz MAT de 2 linhas e 2 colunas, o elemento da primeira linha e primeira coluna será MAT[0][0].

Utilizando a sintaxe acima vamos declarar três matrizes(IDADES,NOTAS e VEICULOS) : a primeira matriz irá armazenar 3 idades de 20 pessoas, ou seja, para cada pessoa serão armazenadas 3 idades; a segunda matriz irá armazenar 4 notas de 10 alunos; a terceira matriz irá armazenar 2 nomes de veículos para cada pessoa, sendo armazenados os veículos de 12 pessoas.

int IDADES[20][3];

double NOTAS[10][4];

Page 100: PROGRAMAÇÃO DE COMPUTADORES

string VEICULOS[12][2];

Para acessarmos um elemento de uma matriz bidimensional precisamos utilizar dois índices, se a matriz for tridimensional precisaremos de três índices e assim por diante.

No quadro abaixo estão relacionadas as operações básicas que podem ser feitas com uma matriz e seus elementos.

Operação ExemploDefinir uma matriz de notas de 20 linhas e 4 colunas

double NOTAS[20][4];

Atribuir valores aos elementos da matriz NOTAS[0][1]=8.5; NOTAS[19][3]=4.6;

Ler o elemento da 5ª linha e 2ª coluna da matriz

cin >> NOTAS[5][2];

Escrever o elemento da 2ª linha e 4ª coluna da matriz.

cout << NOTAS[2][4];

Quando queremos realizar qualquer operação com um elemento de uma matriz devemos sempre utilizar o nome da matriz, que foi especificado quando a matriz foi definida, e os números que representam a linha e a coluna do elemento, para encontrar o elemento na matriz basta encontrar a interseção da linha com a coluna. O valores da linha e da coluna podem ser definidos por constantes numéricas (0,1,2,3), pelo conteúdo de uma variável, que deve ser inteira, por uma expressão numérica que resulte em um número inteiro ou mesmo por um elemento da própria matriz ou de outra matriz, desde que a matriz seja de números inteiros

Exemplo 5 Neste exemplo consideramos que a matriz X , de 3 linhas e 3 colunas, contém os valores listados e que temos duas variáveis A e B que são do tipo int e contém os valores 1 e 2 respectivamente, ou seja, A=1 e B=2.

MATRIZ X 0 1 20 3 1 451 4 -9 -102 18 80 50

Veja como escrevemos a referência a um elemento da matriz e o valor deste elemento na matriz X:

X[0][2] 45 Linha e coluna definidos com constantes numéricas.

X[A][B] -10 Linha e coluna definidos com variáveis.

X[A+1][B-1] 80 Linha e coluna definidos com expressões numéricas.

X[X[0][A]] [B-1] -9 Linha definida com elementos da matriz X e a coluna com uma expressão numérica.

Sempre que precisarmos percorrer todos os elementos de uma matriz, para realizarmos uma operação de atribuição, escrita ou leitura, utilizaremos dois comandos de repetição for. No primeiro comando colocamos como variável de controle aquela que será utilizada como linha

Page 101: PROGRAMAÇÃO DE COMPUTADORES

da matriz e o segundo comando for colocamos a variável que representará a coluna da matriz, conforme abaixo:

for(I = 0; I<3;I++)

for (J=0;J<3;J++)

cout << MAT[I][J];

Existe uma convenção de se utilizar a letra I para nomear a variável que será a linha da matriz e J para a coluna.

Lembre-se que I++ equivale a I = I + 1.

Consideramos que a matriz MAT já foi definida com 3 linhas e 3 colunas

Nos exemplos 5, 6 e 7 apresentamos programas que definem uma matriz e fazem as operações de atribuição, leitura e escrita dos elementos da matriz definida.

O programa do exemplo 5,

Exemplo 5 – Este define a matriz NUMEROS, atribui os valores listados abaixo para a matriz e escreve o conteúdo da matriz, utilizando os comandos for.

0 1 20 10 14 151 -9 19 -12 8 0 10

#include <cstdlib>#include <iostream>

using namespace std;

int main(int argc, char *argv[]){ int NUMEROS[3][3]; int I,J; cout << "INFORME OS ELEMENTOS DA MATRIZ( NUMEROS INTEIROS)\n"; NUMEROS[0][0] = 10; NUMEROS[0][1] = 14; NUMEROS[0][2] = 15; NUMEROS[1][0] = -9; NUMEROS[1][1] = 19; NUMEROS[1][2] = -1; NUMEROS[2][0] = 8; NUMEROS[2][1] = 0; NUMEROS[2][2] = 10; cout << "\n\nEste e' o conteudo da matriz NUMEROS:\n"; for(I=0;I<3;I++)

Page 102: PROGRAMAÇÃO DE COMPUTADORES

{ for(J=0;J<3;J++) cout << NUMEROS[I][J] << " "; cout <<"\n"; }

system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 6- Programa que define uma matriz 3X3, atribui o valor 10 para todos os elementos da matriz , depois imprime todos os elementos desta matriz.

#include <cstdlib>#include <iostream>

using namespace std;

int main(int argc, char *argv[]){ int M[3][3]; int I,J;

for(I=0;I<3;I++) for(J=0;J<3;J++) M[I][J] = 10; cout << "Este e' o conteudo da matriz M:\n"; for(I=0;I<3;I++) { for(J=0;J<3;J++) cout << M[I][J] << " "; cout <<"\n"; }

system("PAUSE"); return EXIT_SUCCESS;}

EXEMPLO 7- Programa que define uma matriz 3X3, solicita que o usuário informe os elementos da matriz , depois imprime todos os elementos lidos.

#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int M[3][3], I,J; cout << "INFORME OS ELEMENTOS DA MATRIZ( NUMEROS INTEIROS)\n"; for(I=0;I<3;I++) for(J=0;J<3;J++) { cout << "Linha: " << I << " Coluna: " << J << ": \n"; cin >> M[I][J]; }

Page 103: PROGRAMAÇÃO DE COMPUTADORES

cout << "\n\nEste e' o conteudo da matriz M:\n"; for(I=0;I<3;I++) { for(J=0;J<3;J++) cout << M[I][J] << " "; cout <<"\n"; } system("PAUSE"); return EXIT_SUCCESS;}

EXERCÍCIOS

6.6 – Considerando a matriz M igual a :

0 1 2 30 10 14 15 211 -9 19 -1 352 8 0 10 33 12 1 5 4

E as variáveis X = 2 e Y = 4, escreva o valor correspondente ao conteúdo do elemento do vetor:

A) M[X+1][2] B)M[X-1][Y-2] C) M[2][3] D)M[M[3[]1]] [M[2][3]]

6.7 – Faça um programa que preenche uma matriz 5X5 colocando o número da linha em todas as colunas desta linha e escreva a matriz.

A matriz deverá ficar conforme abaixo:

0 1 2 3 40 0 0 0 0 01 1 1 1 1 12 2 2 2 2 23 3 3 3 3 34 4 4 4 4 4

6.8 - Faça um programa que preenche uma matriz 5X5 colocando o número da coluna em todas as linhas desta coluna e escreva a matriz.

A matriz deverá ficar conforme abaixo:

0 1 2 3 40 0 1 2 3 41 0 1 2 3 42 0 1 2 3 43 0 1 2 3 44 0 1 2 3 4

Page 104: PROGRAMAÇÃO DE COMPUTADORES

6.9 - Faça um programa que leia uma matriz 3x3 de números inteiros e escreva os e elementos que tenham o número da linha igual ao número da coluna.

6.10 - Faça um programa que leia uma matriz 3x3 de números inteiros, depois leia uma variável inteira que representa uma coluna da matriz e escreva os todas as linhas desta coluna.

6.11 - Faça um programa que leia duas matriz de 3X3, depois some seus valores em outra matriz 3X3 e por fim escreva a matriz resultante.

Page 105: PROGRAMAÇÃO DE COMPUTADORES

\

FORBELLONE, André Luiz Villar. et. al.Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª Ed. São Paulo: Pearson Prentice Hall,2010.