Buscar

Aulas-de-1-a-10-Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Table of Contents
Aula 1: Fundamentos da lógica	3
Objetivos	3
Atenção	3
O pensamento computacional	3
Um pouco mais sobre algoritmos	3
Mas o que são algoritmos?	3
Fluxogramas	4
Pseudocódigo	4
Saiba mais	4
Atenção	5
Aula 2: Conceitos básicos de programação	6
Objetivos	6
Armazenamento de dados	6
Compreendendo as variáveis	6
Atenção	7
Numerais	7
Literais	7
Lógicos	7
Atenção	7
Atenção	7
Comentário	8
As constantes	8
Operadores	8
QUANTO AO NÚMERO	8
QUANTO AO TIPO	8
Aula 3: Expressões e tabela da verdade	10
Objetivos	10
Expressões matemáticas	10
Dica	10
Expressões relacionais	10
Exemplo:	10
Expressões lógicas	11
Atenção	11
Tabela da verdade	11
1º. Passo	11
2º. Passo	11
3º. Passo	11
Operadores de atribuição	12
Operador de adição e atribuição	12
Operador de subtração e atribuição	12
Operador de divisão e atribuição	12
Operador de multiplicação e atribuição	12
Operadores de incremento e decrementar	12
Aula 4: Comandos de entrada e saída	13
Objetivos	13
Comandos de entrada e saída em Portugol	13
COMANDO DE ENTRADA	13
COMANDO DE SAÍDA	13
Arredondando valores reais no Portugol Studio	13
Comandos de entrada e saída em C++	14
Dica	14
Aula 5: Estrutura de seleção simples e composta	15
Objetivos	15
Estrutura Seletiva	15
Aula 6: Estrutura de seleção com múltiplas alternativas	16
Objetivos	16
Estrutura seletiva aninhada	16
* Portugol Studio	16
Estrutura de seleção CASO ou SWITCH	17
Aula 7: Estrutura de repetição com pré-teste e com pós-teste	20
Objetivos	20
Estruturas repetitivas	20
Estrutura de repetição com pré-teste	20
Estrutura de repetição com pós-teste	20
Aula 8: Estrutura de repetição com variável de controle	23
Objetivos	23
Estrutura de repetição com variável de controle	23
Aula 9: Estruturas de dados homogêneas unidimensionais 	25
Objetivos	25
Vetores	25
Atenção	26
Dica	27
Aula 10: Estruturas de dados homogêneas bidimensionais 	28
Objetivos	28
Matrizes	28
Dica	29
Aula 1: Fundamentos da lógica
Objetivos
	Identificar raciocínio lógico e pensamento computacional; 
	Examinar fluxogramas e algoritmos escritos em portugol; 
	Praticar a estruturação de soluções com fluxogramas e algoritmos. 
Na computação, o raciocínio lógico é o que nos ajuda a explicar por que as coisas acontecem da maneira como acontecem. 
A lógica é fundamental para o funcionamento dos computadores; tudo o que a máquina faz é controlado pela lógica e podemos usá-la para raciocinar sobre o comportamento dos programas.
Atenção
É importante ressaltar que, antes que um computador possa ser utilizado para resolver um problema, precisamos compreender o problema e as diferentes maneiras que podemos usar para solucioná-lo. 
O pensamento computacional
O pensamento computacional é um processo de solução de problemas que envolve os seguintes passos:
1. Identificação e descrição de um problema.
2. Verificação de detalhes importantes para a solução.
3. Decomposição do problema em partes menores.
4. Tratamento dos segmentos na criação de um processo de solução.
5. Aplicação e avaliação da solução proposta.
Existem quatro pilares para o pensamento computacional:
1. Decomposição - Envolve a decomposição do problema em partes menores e mais gerenciáveis.
2.Reconhecimento de padrões - Busca semelhanças entre o problema e outras soluções anteriores e também dentro do próprio problema.
3. Abstração - Concentra-se nas informações relevantes para o problema, ignorando detalhes que não são importantes.
4. Algoritimos - Desenvolvem uma solução passo a passo para o problema, incluindo as regras a serem seguidas para tal.
Um pouco mais sobre algoritmos
A discussão em torno do conceito e das etapas do pensamento computacional introduziu um termo muito presente no estudo de programação: algoritmos. 
Mas o que são algoritmos?
Os algoritmos são séries de procedimentos definidos passo a passo que visam a solução de um problema. Algoritmos são independentes de linguagens de programação e, por isso, um algoritmo pode ser convertido em qualquer linguagem de programação. 
Os algoritmos que formulam soluções para problemas computacionais e que serão traduzidos em uma linguagem de programação normalmente estão descritos como fluxogramas ou escritos em pseudocódigo.
Fluxogramas
Os fluxogramas são a representação gráfica dos algoritmos. Para desenhá-los, existe um conjunto de regras a ser seguido e é necessário utilizar uma simbologia específica. Veja, a seguir, os símbolos que podem ser usados: (VER NA DISCIPLINA)
Exemplo 1: SOMA
		
Pseudocódigo
O pseudocódigo não é uma linguagem de programação e, por isso, não precisa seguir uma sintaxe específica. Ele é uma maneira simples de descrever um conjunto de instruções que deverão ser executadas pelo computador. O pseudocódigo é escrito na língua nativa de quem o utiliza – no nosso caso, o português – e sua intenção é garantir que qualquer pessoa compreenda o que está descrito.
Saiba mais
Em computação, o termo sintaxe faz referência às regras que especificam de que maneira devem ser utilizadas as instruções e declarações de uma linguagem de programação.
Na Informática, os algoritmos costumam ser escritos em portugol. O portugol é uma pseudolinguagem, ou seja, é uma linguagem intermediária entre a linguagem natural e a linguagem de programação.
Para fins de padronização e garantia de compreensão dos algoritmos, o portugol adota algumas regras. Vamos ver o exemplo a seguir, em que são recebidos dois números para que se calcule e exiba a subtração entre eles.
Algoritmo em portugol
	1 Início
	2 Leia(Teste)
	 Leia(Prova)
	3 Media <- (Teste+Prova)/2
	4 Escreva (Media)
	5 Se (Media < 6)
	6 Escreva(“Você está abaixo da média!”)
	5 Fim se
Atenção
O portugol não é uma linguagem de programação e, por isso, um algoritmo escrito em portugol não pode ser executado por um computador. 
Fluxogramas: Os fluxogramas representam graficamente a solução de um problema com base em um conjunto específico de símbolos.
Algoritmos: Os algoritmos são como os fluxogramas, mas, ao invés de terem a forma gráfica, são totalmente textuais.
Portugol: O portugol é a linguagem adotada na criação de algoritmos que nos permite definir as soluções usando nossa língua materna, ou seja, o português.
Aula 2: Conceitos básicos de programação
Objetivos
	Apontar o conceito de variáveis e constantes; 
	Identificar os diferentes tipos de dados existentes; 
	Examinar os diferentes tipos de operadores e sua aplicação. 
Armazenamento de dados
O funcionamento dos computadores envolve as etapas de entrada > processamento > saída 
Isso significa dizer que o computador recebe dados, faz o processamento necessário com eles e gera as informações necessárias para a saída. Na programação, trabalharemos diretamente com essas etapas.
Observe o exemplo a seguir:
Início
	Escreva(“Informe o o. número: ”)
	Leia(N1)
	Escreva(“Informe o 2o. número: ”)
	Leia(N2)
	Subtra <- N1 - N2
	Escreva(“A subtração entre os números é ”, Subtra)
Fim
Entrada de dados> Processamento> Saída de informações
As cores destacam a etapa envolvida em cada momento
Os dados de entrada e as informações a serem exibidas como saídas ficam armazenados na memória principal do computador, conhecida como RAM – Random Access Memory ou Memória de Acesso Aleatório.
Por isso, é preciso ter uma solução que permita armazenar os dados e recuperá-los sem dificuldade e sem que eles se misturem com todos os outros dados na memória. Essa solução existe: são as variáveis.
Compreendendo as variáveis
Uma variável é um espaço da memória principal dedicado ao armazenamento temporário de valores.
Em geral, os identificadores de variáveis podem conter letras e números, não devem conter espaços em branco nem caracteres especiais, e não podem começar com números. O único caractere especial que costuma ser aceito em nomes de variáveis é o sublinado ou UNDERLINE (_).
No C++, as regras para criação de identificadores de variáveis são as seguintes:
	Os identificadores podem começar com uma letra ou com o caractere “_”;
	Após o primeiro caractere, o identificador pode ser composto por letrase números. 
	Caracteres especiais e espaços em branco não podem ser utilizados.
Atenção
Lembre-se: C++ é uma linguagem case sensitive.
	As variáveis podem ser de diferentes tipos. Em geral, esses tipos pertencem à categoria dos numerais, dos literais ou dos lógicos.
Numerais
Agrupa tipos que identificam variáveis cuja intenção é armazenar valores numéricos.
Literais
Permitem a criação de variáveis para armazenamento de caracteres.
Lógicos
Permitem a criação de variáveis para armazenamento de valores do tipo verdadeiro ou falso.
Tipos de Variáveis
Portugol Studio									C++
Inteiro: número sem casa decimal significativa		int / long int
Real: número com casa decimal significativa		float / double
Caractere: somente um caractere					char
Cadeia: conjunto de caracteres						char
Logico: verdadeiro ou falso						bool
Atenção
No Portugol Studio, as palavras com o tipo de dado que define variáveis para armazenamento de valores lógicos são escritas sem os acentos. 
Declaração de Variáveis
Portugol Studio							C++
cadeia nome = “Luciana” 					char nome[ ] = “Luciana”; 
int eiroidade = 42 						int idade = 42; 
real saldo = 550.00 						float saldo = 550.00; 
cadeia sexo = ‘F’ 						char sexo[ ] = “F”; 
logico trabalha = verdadeiro				bool trabalha = true;
Atenção
No C++, as variáveis lógicas são declaradas como do tipo bool e podem receber true (verdadeiro) ou false (falso).
Comentário
Os programadores acham mais fácil escrever programas em linguagens de tipagem fraca. Alguns exemplos de linguagens fracamente tipadas são Python e JavaScript.
No Portugol Studio, as aspas simples são usadas para delimitar um único caractere (como em sexo), e as aspas duplas delimitam cadeias de caracteres (como em nome). 
No C++ isso não acontece e as aspas duplas são utilizadas em ambos os casos.
Mas, se eu quiser usar um valor constante, como o de pi?
As constantes
Um valor constante é um valor que não se altera. Ao contrário das variáveis, que podem ter seu valor modificado ao longo do programa, as constantes têm um valor predefinido que não pode ser alterado. 
Portugol Studio							C++
const real PI = 3.14						const float PI = 3.14;
const inteiro MESES = 12				const int MESES = 12;
Por uma questão de convenção, os identificadores de constantes costumam ser escritos em caixa alta, mas essa não é uma obrigatoriedade.
Operadores
Os operadores são símbolos que, combinados às variáveis e constantes, nos permitem construir expressões aritméticas, relacionais e lógicas. 
QUANTO AO NÚMERO
Quanto ao número de operandos sobre os quais atuam, os operadores podem ser unários ou binários. Operadores unários atuam sobre um único operando, e operadores binários precisam de dois operandos para que possam ser utilizados.
QUANTO AO TIPO
Os operadores podem ser aritméticos, relacionais, lógicos, de atribuição, de incremento e de decremento. 
Observe, a seguir, os operadores pertencentes a cada uma dessas categorias.
Operadores Matemáticos			Operadores Relacionais
+ soma								> Maior que
- subtração							< Menor que
/ divisão								>= Maior ou igual
* multiplicação						<= Menor ou igual
% Resto da divisão					!= Diferente de
Operadores Lógicos					Operadores Especiais de Atribuição
 ! Não								+= Soma e atribui. Exemplo: res+=2
&& E								-= Subtrai e atribui. Exemplo: res-=2
|| Ou								/= Divide e atribui. Exemplo: res/=5
									*= Multiplica e atribui. Exemplo: res*=3
Operadores de Atribuição			Operadores de Incremento / Decremento
= Atribuição de valor a variáveis 		++ Incremento
 ou constantes.						– Decremento
Aula 3: Expressões e tabela da verdade
Objetivos
	Identificar os diferentes tipos de expressão; 
	Analisar a forma como são escritas as expressões; 
	Avaliar expressões lógicas para construção de tabelas da verdade. 
Vamos ver de que maneira eles são utilizados nos programas e algoritmos que iremos construir.
Expressões matemáticas
Para que as expressões matemáticas nos exemplos possam ser utilizadas em um algoritmo ou programa, precisam ser escritas conforme a seguir:
Subtra = 12 - 7
Divide = 14 / 2
Mult = 35 * 3
Soma = 14 + 2
Um operador que está disponível em diversas linguagens de programação é o módulo, representado pelo sinal “%”. 
A operação de módulo é responsável por retornar o resto de uma divisão. Observe os exemplos:
Resto1 =120%2
Resto2 = 310%3
Lembre-se de que os operadores têm o que chamamos de precedência — responsável por definir a ordem em que as operações serão executadas, quando uma expressão combina várias delas.
Observe a tabela de precedência a seguir:
	1º.
	Multiplicação, divisão, módulo
	2º.
	Adição, subtração
Dica
Assim como são usados na Matemática, os parênteses também podem ser utilizados em algoritmos e programas. Quando eles estiverem presentes, resolva primeiro o conteúdo dentro dos parênteses.
Expressões relacionais
As expressões relacionais são construídas de modo a avaliar a relação entre os termos da expressão. 
Uma expressão desse tipo é composta por termos de um mesmo tipo e por operadores relacionais. O resultado de uma expressão relacional será sempre um valor lógico:
Exemplo:
Considere as variáveis N1=15 e N2=29:
Maior = (N1 > N2) Maior armazena falso
Menor = (N1 < N2) Maior armazena verdadeiro.
Diferente = (N1 != N2) Diferente armazena verdadeiro.
Expressões lógicas
As expressões lógicas, também conhecidas como expressões booleanas, são construídas com o auxílio dos operadores lógicos e são responsáveis por avaliar uma ou mais condições. O resultado de uma expressão lógica será sempre um valor lógico. 
Considere que a variável “Num” está armazenando o valor 10. Ao avaliarmos a expressão lógica para esse caso, veremos que ambas expressões relacionais retornam verdadeiro.
Num = 10
(Num>0) Esta expressão relacional retorna verdadeiro.
(Num%2==0) Esta expressão relacional retorna falso.
	Precedência dos operadores lógicos
	1º.
	Não (!)
	2º.
	E (&&)
	3º.
	Ou (||)
Atenção
Conhecer a precedência dos operadores é essencial quando é necessário resolver uma expressão na qual vários operadores são combinados. 
Tabela da verdade
A quantidade de variáveis será expoente de uma base 2 e o resultado dessa potenciação dirá quantos resultados diferentes existem para a expressão. Observe:
1º. Passo
Identificar a quantidade de variáveis.
A && B || !C Três variáveis: A, B e C
2º. Passo
Utilizar a quantidade de variáveis como expoente de uma base 2.
23 Quantidade de variáveis da expressão
3º. Passo
Resolver a potenciação para descobrir a quantidade de combinações possíveis.
A quantidade de combinações possíveis nos ajudará a definir quantas linhas irão compor a tabela da verdade. 
Operadores de atribuição
Os operadores de atribuição são responsáveis por armazenar valores em constantes e variáveis. Observe:
Resultado = 0 Atribui 0 à variável “Resultado”;
Pi = 3.14 Atribui 3.14 à constante “Pi”;
Nome = “Thomás” Atribui “Thomás” à variável “Nome”;
Soma = N1 + N2 Atribui a soma de A+B à variável “Soma”.
Operador de adição e atribuição
Soma += 5 Equivale à expressão Soma = Soma + 5
Operador de subtração e atribuição
Subtra –= 10 Equivale à expressão Subtra = Subtra – 10
Operador de divisão e atribuição
Divide /= 2 Equivale à expressão Divide = Divide / 2
Operador de multiplicação e atribuição
Multiplica *= 3 Equivale à expressão Multiplica = Multiplica * 3
Operadores de incremento e decrementar
O operador de incremento aumenta em uma unidade o valor da variável.
Exemplo: Total ++ Equivale à expressão Total = Total + 1
 Enquanto o operador de decremento diminui em uma unidade o valor da variável.
Exemplo: Total -- Equivale à expressão Total = Total – 1
Aula 4: Comandos de entrada e saída
Objetivos
	Identificar os comandos de entrada e saída; 
	Analisar problemas simples que possam ser resolvidos com programas; 
	Aplicar algoritmos e programas para solução dos problemas apresentados. 
Nesta disciplina, trabalharemos apenas com os comandos de entrada de dados via teclado, mas um input pode vir de outras origens, como o clique emum botão do mouse ou um sinal detectado por um sensor de movimentos, por exemplo. 
Os comandos de saída podem direcionar a informação para uma impressora ou um dispositivo de áudio, por exemplo, mas o destino padrão das saídas de nossos programas e algoritmos será o monitor de vídeo. 
Comandos de entrada e saída em Portugol
Geralmente, os algoritmos utilizam os comandos leia e escreva para entrada e saída de dados, respectivamente. 
Algumas vezes, vemos pequenas variações dessas instruções: 
COMANDO DE ENTRADA
pode aparecer como receba, receber ou ler.
COMANDO DE SAÍDA
Comando de saída pode passar a ser exiba, exibir ou escrever. 
Arredondando valores reais no Portugol Studio
Para arredondarmos valores e configurar o número de casas decimais que desejamos exibir, é preciso utilizar a função arredondar, da biblioteca Matematica-->mat. Veja como fazer: 
programa
{
inclua biblioteca Matematica --> mat
	funcao inicio()
	{
		real pi_Longo = 3.14159265358979323846
		real pi_Curto
		// Arredonda o valor de pi_Longo para 2 casas decimais
		pi_Curto = mat.arredondar(pi_Longo,2)
	} 
} 
Linhas de comentário são muito úteis, pois nos permitem escrever informações que nos ajudam a compreender melhor o código. Elas não serão executadas pelo computador e servem somente para fins de documentação. 
Comandos de entrada e saída em C++
Os comandos cin e cout são os que utilizaremos para entrada e saída de dados, respectivamente.
Dica
C++ é uma linguagem de programação compilada. O compilador é responsável por verificar erros de sintaxe no programa e, quando o programa está sintaticamente correto, produzir outro programa em linguagem de máquina.
Aula 5: Estrutura de seleção simples e composta
Objetivos
	Identificar as estruturas seletivas; 
	Aplicar as estruturas de seleção para escrever algoritmos e programas; 
	Analisar os resultados produzidos por códigos que empreguem estruturas seletivas. 
Estrutura Seletiva
Uma estrutura seletiva restringe a execução de um trecho do código à veracidade, ou não, de uma ou mais condições. No seu formato mais simples, uma estrutura seletiva, no Portugol Studio e no C++, tem a seguinte sintaxe:
* Portugol Studio
se (condição)
{
// Comandos a serem executados se a condição for verdadeira.
}
* C++
if (condição)
{
// Comandos a serem executados se a condição for verdadeira.
}
Você se lembra de quando falamos das expressões relacionais e lógicas?
RESUMINDO TUDO: 
ESTRUTURAS SELETIVAS SÃO ESTRUTURAS COM IF, ELSE, etc…
ESTRUTURAS QUE DESVIAM CONFORME A OU AS CONDIÇÕES...
Aula 6: Estrutura de seleção com múltiplas alternativas
Objetivos
 Aplicar as estruturas seletivas aninhadas;
 Identificar uma alternativa à estrutura “se..então..senão”;
 Estabelecer a estrutura de seleção adequada para escrever algoritmos e programas.
Estrutura seletiva aninhada
Para dar conta das três possibilidades e ser capaz de dar uma mensagem correta seja qual for a situação – número nulo, número positivo ou número negativo – precisamos adequar o código, mais especificamente o trecho que avalia as condições. Observe:
* Portugol Studio
se (num>0)
 {
 escreva("Este número é positivo!")
 }
senao se (num<0)
 {
 escreva("Este número é negativo!")
 }
senao
 {
 escreva("Este número é nulo!")
 }
* C++
if (num>0)
 {
 cout <<"Este número é positivo!";
 }
else if (num<0)
 {
 cout <<"Este número é negativo!";
 }
else
 {
 cout <<"Este número é nulo!";
 }
Logo após o comando senao ou else, inserimos outro teste de condição, iniciado pelo comando se ou if.
Atenção
É importante que você saiba que não há um limite para aninhamento de estruturas seletivas.
COMO JÁ SEI : USO DOS: IF, ELSE IF, ELSE
Estrutura de seleção CASO ou SWITCH
A estrutura CASO (nos algoritmos) ou SWITCH (nos programas em C++) são semelhantes à estrutura SE ou IF, mas possui algumas restrições:
Uso dos operadores lógicos para avaliar mais de uma condição em um mesmo teste: isso não é possível na estrutura CASO ou SWITCH.
Os operadores relacionais (como maior que ou menor ou igual a) também não são permitidos. Aqui, os valores a serem testados precisam ser definidos e a variável será igual a eles ou diferente dos mesmos.
Observe a sintaxe desta estrutura no Portugol Studio e no C++:
* Portugol Studio
escolha (variável_a_ser_testada)
{
 caso valor1:
 // Comandos a serem executados.
 pare
 caso valor2:
 // Comandos a serem executados.
 pare
 caso valorN:
 // Comandos a serem executados.
 pare
 caso contrario:
 // Comandos a serem executados caso a variável testada não seja
 // igual a nenhum dos valores testados nos “casos”.
}
* C++
switch (variável_a_ser_testada)
{
 case valor1:
 // Comandos a serem executados.
 break;
 case valor2:
 // Comandos a serem executados.
 break;
 case valorN:
 // Comandos a serem executados.
 break;
 default:
 // Comandos a serem executados caso a variável testada não seja
 // igual a nenhum dos valores testados nos “cases”.
}
Aula 7: Estrutura de repetição com pré-teste e com pós-teste
Objetivos
	Identificar as estruturas de repetição; 
	Diferenciar as estruturas de repetição com pré-teste das com pós-teste; 
	Registrar algoritmos e programas, utilizando a estrutura de repetição adequada. 
Estruturas repetitivas
Temos estruturas específicas às quais podemos recorrer em situações nas quais é necessário repetir determinado trecho do código: as estruturas repetitivas ou de repetição.
	Estrutura de repetição com pré-teste.
	Estrutura de repetição com pós-teste.
	Estrutura de repetição com variável de controle.
É comum chamarmos as estruturas repetitivas de laço ou loop.
Estrutura de repetição com pré-teste
As estruturas repetitivas com pré-teste, ou teste inicial, farão a repetição de determinada parte do código enquanto uma condição for verdadeira. Isso significa que, no momento em que a condição for falsa, o trecho descrito dentro da estrutura de repetição deixará de ser executado. Ela é definida como sendo uma estrutura com pré-teste porque o teste da condição é feito antes da repetição do trecho.
Observe sua sintaxe no Portugol Studio e no C++:,
* Portugol Studio
enquanto (condição)
{
  //Comandos a serem executados enquanto a condição for verdadeira.
}
  
* C++
while (condição)
{
  //Comandos a serem executados enquanto a condição for verdadeira.
}
Estrutura de repetição com pós-teste
	As estruturas repetitivas com pós-teste, ou teste final, farão a repetição de determinada parte do código enquanto uma condição for verdadeira.
	Ela é definida como sendo uma estrutura com pós-teste porque o teste da condição é feito depois da repetição do trecho.
	O que difere esta estrutura da estrutura com pré-teste é o fato de que o bloco de comandos a ser repetido será executado ao menos uma vez.
Observe sua sintaxe no Portugol Studio e no C++:
* Portugol Studio
faca
{
//Comandos a serem executados enquanto a condição for verdadeira.
} enquanto (condição)
* C++
do
{
//Comandos a serem executados enquanto a condição for verdadeira.
} while (condição)
Aula 8: Estrutura de repetição com variável de controle
Objetivos
	Descrever as estruturas de repetição com variável de controle; 
	Diferenciar as estruturas de repetição com variável de controle daquelas com pré-teste ou pós-teste; 
	Registrar algoritmos e programas utilizando a estrutura de repetição adequada. 
Estrutura de repetição com variável de controle
Na aula de hoje, vamos ver um terceiro tipo de estrutura de repetição, que é o que utiliza uma variável de controle. 
Este tipo de estrutura é muito utilizado quando se sabe, de antemão, o número de iterações a serem realizadas, ou seja, quantas vezes será necessário repetir o trecho definido dentro da estrutura. 
Isso acontece porque essa estrutura inclui um contador em sua definição que será automaticamente incrementado ou decrementado. 
Você se lembra da variável de controle que é extremamente necessária nos laços com pós e pré-teste? Nesse tipo de repetição, ela é controlada pela estrutura. 
Vamos ver como é sua sintaxe no PortugolStudio e no C++? 
Portugol Studio
para (inicialização_contador;condição;incremento_ou_decremento)
{
//Comandos a serem executados enquanto a condição for verdadeira.
}
* C++
for (inicialização_contador;condição;incremento_ou_decremento)
{
//Comandos a serem executados enquanto a condição for verdadeira.
} 
Vamos ver como ficaria o algoritmo para exibição dos números pares entre 10 e 100:
Portugol Studio
1 programa
2 {
3	funcao inicio()
4	{
5		inteiro num
6		num=10
7		para (num=10;num<=100;num+=2)
8		{
9			escreva(num, "\n")
10		}
11	}
12} 
* Programa em C++
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5	int num=10;
6	for (num=10;num<=100;num+=2)
7	{
8		cout <<num<<"\n";
9	}
10 } 
Nesta aula, encerramos as estruturas repetitivas. Você verá que, assim como as estruturas seletivas, elas são muito utilizadas nas soluções de programação; o que faz com que seja essencial conhecê-las bem e saber utilizá-las sem dificuldade. 
Aula 9: Estruturas de dados homogêneas unidimensionais 
Objetivos
	Definir os vetores e sua funcionalidade; 
	Avaliar o comportamento de algoritmos e programas com vetores; 
	Escrever códigos com vetores como recurso de armazenamento. 
Vetores
Ao longo de todas as aulas que tivemos até o momento, trabalhamos com variáveis. As variáveis são espaços da memória reservados ao armazenamento temporário de valores. Cada espaço pode armazenar somente um valor de determinado tipo por vez.
Um vetor é uma variável e, portanto, também armazena dados em caráter temporário. A diferença é que o vetor é capaz de armazenar um conjunto de dados do mesmo tipo, todos sob o mesmo identificador. Trata-se, então, de uma série de elementos de um mesmo tipo, armazenados em espaços contíguos da memória principal, que podem ser individualmente referenciados através de um índice. 
Se você precisa armazenar cinco valores do tipo inteiro, ao invés de criar cinco variáveis diferentes – uma para cada valor, você pode criar um vetor para cinco elementos. Esse vetor reserva espaços adjacentes da memória (um ao lado do outro) e todos os valores armazenados poderão ser acessados por um mesmo identificador (nome da variável). O identificador precisa estar acompanhado de um número denominado índice, que indica a posição do vetor a ser acessada. 
Caso você precise criar o vetor descrito no parágrafo anterior, capaz de armazenar cinco elementos inteiros, e deseje chamá-lo de Num, poderíamos representá-lo graficamente da seguinte maneira:
Cada retângulo representa um elemento do vetor e os números de 0 a 4 representam os índices das posições do vetor. A posição 0 é a primeira, e a posição 4 é a última. Cada um desses elementos pode armazenar um valor do tipo inteiro, caso o vetor seja declarado como sendo desse tipo. 
Os vetores são estruturas de dados homogêneas, o que significa que são capazes de armazenar um conjunto de valores de um mesmo tipo. 
Para declarar um vetor no Portugol Studio, é preciso informar seu tipo, seu identificador, seu tamanho e, opcionalmente, os valores que ele irá armazenar. Observe o exemplo, no qual é criado um vetor denominado vogais, capaz de armazenar cinco elementos do tipo caracter: 
Atenção
Tanto no Portugol Studio quanto no C++, a definição do número máximo de elementos do vetor deve ser estar entre colchetes [ ]; o conjunto de elementos a serem armazenados no vetor deve estar definido entre chaves { }.
A declaração de vetores no C++ segue a mesma sintaxe do Portugol Studio. É preciso informar seu tipo, seu identificador, seu tamanho e, opcionalmente, os dados que nele serão armazenados. Observe o exemplo de criação do vetor vogais: 
char vogais[5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’}; 
Conforme dito anteriormente, não é obrigatório armazenar valores no vetor no momento de sua criação. Caso queira somente criar o vetor, pare a definição antes do sinal de atribuição. Veja: 
* Portugol Studio 
caracter vogais[5] // Criação do vetor vogais, para 5 caracteres
inteiro num[10] // Criação do vetor num, para 10 números inteiros
real notas[35] // Criação do vetor notas, para 35 números reais
*C++
char vogais[5]; // Criação do vetor vogais, para 5 caracteres
int num[10]; // Criação do vetor num, para 10 números inteiros
float notas[35]; // Criação do vetor notas, para 35 números reais
É muito importante que você saiba que, para acessar as diferentes posições do vetor para armazenamento ou recuperação de dados, é imprescindível informar seu índice. Veja os exemplos a seguir: 
* Portugol Studio
//Armazena a letra “E” na segunda posição do vetor vogais
vogais[1] = ‘E’
//Armazena o número 35 na quinta posição do vetor num
num[6] = 35
* C++ 
//Exibe a primeira posição do vetor vogais
cout <<vogais[0];
//Armazena em RESULT a soma dos dois primeiros valores do vetor num
RESULT = num[0]+num[1];
//Armazena o valor informado via teclado na quarta posição do vetor notas
cin >>notas[3];
Dica
Lembre-se de que tanto no Portugol Studio quanto no C++, a primeira posição do vetor é identificada pelo índice 0. Assim, um vetor de 15 elementos varia da posição 0 à posição 14. 
Aula 10: Estruturas de dados homogêneas bidimensionais 
Objetivos
	Definir as matrizes e sua funcionalidade; 
	Avaliar o comportamento de algoritmos e programas com matrizes; 
	Escrever códigos com matrizes como recurso de armazenamento. 
Matrizes
As matrizes são estruturas bidimensionais que podem ser consideradas vetores de vetores. Elas armazenam valores de um mesmo tipo e também precisam que a localização do elemento seja identificada para que o mesmo possa ser armazenado ou recuperado. Ao contrário dos vetores, que aparecem acompanhados de somente um índice, as matrizes precisam de dois índices: um para identificar a linha do elemento e outro para identificar a coluna do mesmo. 
Vejamos um exemplo:
Imagine que você precisa criar uma matriz capaz de armazenar 15 elementos do tipo inteiro e deseja chamá-la de Mat_Num. Essa matriz deve ter três linhas e cinco colunas. Se fossemos representá-la graficamente, ela teria a seguinte aparência:
Para declarar uma matriz no Portugol Studio, é preciso informar seu tipo, seu identificador, sua dimensão e, opcionalmente, os valores que a mesma irá armazenar. Observe o exemplo, no qual é criada a matriz Mat_Num, capaz de armazenar quinze elementos do tipo inteiro, organizados em três linhas e cinco colunas: 
Atenção
Tanto no Portugol Studio quanto no C++, a definição do número de linhas e do número de colunas da matriz deve ser estar entre colchetes [ ]; e o conjunto de elementos a serem armazenados na mesma deve estar definido entre chaves { }.
A declaração de matrizes no C++ segue a mesma sintaxe do Portugol Studio. É preciso informar seu tipo, seu identificador, sua dimensão e, opcionalmente, os dados que nela serão armazenados. Observe o exemplo de criação da matriz Mat_Num:
int Mat_Num[3][5] = {{0,1,2,3,4},{5,6,7,8,9},{10,11,12,13,14}};
Atenção
Como sabemos, o conjunto de elementos a serem armazenados na matriz deve estar definido entre chaves { }. Observe, entretanto, que há novas chaves dentro das chaves que delimitam todos os elementos da matriz. A função delas é agrupar os elementos por linha. Veja: 
int Mat_Num[3][5] = {{0,1,2,3,4},{5,6,7,8,9},{10,11,12,13,14}};
Legenda:
Elementos da linha 0
Elementos da linha 1
Elementos da linha 2
Conforme dito anteriormente, não é obrigatório armazenar valores na matriz no momento de sua criação. Caso queira somente criar a variável, pare a definição antes do sinal de atribuição. Veja: 
* Portugol Studio
caracter Mat_vogais[2][5] // Matriz vogais, com 2 linhas e 5 colunas
inteiro Mat_num[5][10] // Matriz Mat_num, com 5 linhas e 10 colunas
real notas[35][3] // Matriz notas, com 35 linhas e 3 colunas
* C++
char Mat_vogais[2][5]; // Matriz vogais, com 2 linhas e 5 colunas
int Mat_num[5][10]; // Matriz Mat_num, com 5 linhas e 10 colunas
float notas[35][3]; // Matriz notas, com 35 linhas e 3 colunas
Dica
Lembre-se de que tanto no Portugol Studio quantono C++, a primeira linha e a primeira coluna da matriz são identificadas pelo índice 0 . Assim, uma matriz 2x3 (duas linhas e três colunas) terá as linhas variando de 0 a 1, e as colunas variando de 0 a 2.

Outros materiais