Buscar

Introdução a programação

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Introdução a programação /codificação
Aula 1 
Apresentação
A codificação desenvolve habilidades para a resolução de problemas e permite que você crie uma solução que funcione exatamente da maneira que deseja. Para isso, é necessário definir as etapas para usar os recursos a sua disposição de forma a executar a tarefa com eficiência. Nesta aula, veremos alguns dos recursos disponíveis para os programadores: as variáveis e as constantes, seus tipos e os operadores.
As variáveis são essenciais e dificilmente você criará um programa ou algoritmo no qual não precise delas. Portanto, aprender a utilizá-las adequadamente é um requisito básico para os programadores. Os operadores também são muito importantes. Eles nos permitem criar expressões aritméticas, relacionais e lógicas e, assim como as variáveis, são muito utilizados nas soluções que desenvolveremos ao longo de nossos exercícios.
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
Já estudamos que o princípio básico do 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 1o. 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 ProcessamentoSaída de informações
Nesse exemplo, as cores destacam a etapa envolvida em cada momento. Veja que fica claro que ocorre a entrada de dois dados que servem para o cálculo da subtração, que é a etapa de processamento. Em seguida, o valor obtido com a realização do cálculo é mostrado para o usuário, o que configura a saída de informações.
 Ilustração Desktop (Fonte: Shutterstock).
Os dados de entrada e as informações a serem exibidas como saídas ficam armazenados na memória principal do computador, conhecida como RAM1 – 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. Ela funciona como um recipiente em que colocamos os valores dos quais precisamos para o programa e retiramos de lá quando eles já não são mais necessários. É possível, também, alterar esses valores ao longo da execução do programa pois, como o nome diz, eles são variáveis
Quando criamos uma variável, precisamos dar a ela um identificador. Esse identificador funcionará como um rótulo para a área da memória onde a variável está armazenada. Toda as vezes que precisarmos recuperar o valor da variável ou armazenar um valor na mesma, faremos referência ao seu identificador.
As regras para a criação desses identificadores variam em função da linguagem de programação utilizada, por isso precisamos conhecer essas regras quando estivermos programando em uma nova linguagem.
Comentário
Em nossas aulas, utilizaremos o Portugol Studio para testar os algoritmos.
Para promover a familiarização com uma linguagem de programação, utilizaremos C++ e o ambiente de desenvolvimento Dev-C++. Este software é gratuito e portátil.
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 sublinhado (_).
É importante, também, que o identificador seja capaz de nos fazer lembrar o dado que está armazenado na variável. Se você precisa armazenar o nome de um cliente, por exemplo, o ideal é identificar sua variável como nome ou nomeCliente.
No C++, as regras para criação de identificadores de variáveis são as seguintes:
1
Os identificadores podem começar com uma letra ou com o caractere “_”;
2
Após o primeiro caractere, o identificador pode ser composto por letras e números.
3
Caracteres especiais e espaços em branco não podem ser utilizados.
É importante ressaltar que algumas linguagens são case sensitive (ou sensíveis ao caractere). Isso significa que os caracteres maiúsculos são considerados diferentes dos seus equivalentes minúsculos. Assim, nesse tipo de linguagem, os identificadores telefone, Telefone e TELEFONE representariam três variáveis diferentes.
Atenção
Lembre-se: C++ é uma linguagem case sensitive.
Outro aspecto importante a respeito das variáveis é que elas 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.
Observe a tabela a seguir e veja os tipos de variáveis existentes no Portugol Studio e seus tipos equivalentes no C++:
	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.
Para que uma variável possa ser utilizada em um programa, ela precisa ser criada (ou declarada, que é o termo utilizado em programação).
A forma como a declaração de variáveis é feita depende da sintaxe da linguagem de programação utilizada.
A linguagem C++ é fortemente tipada, o que significa dizer que será necessário informar tipo e identificador da variável para que ela seja criada. O Portugol Studio segue o mesmo critério.
Veja exemplos de definições de variáveis a seguir.
	Declaração de Variáveis
	Portugol Studio
	C++
	cadeianome = “Luciana”
inteiroidade = 42
realsaldo = 550.00
cadeiasexo = ‘F’
logicotrabalha = verdadeiro
	charnome[ ] = “Luciana”;
intidade = 42;
floatsaldo = 550.00;
charsexo[ ] = “F”;
booltrabalha = 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).
Nas linguagens de programação fortemente tipadas, o tipo de dado a ser armazenado na variável deve ser explicitamente definido.
Outro aspecto importante é que a variável somente armazenará valores do tipo definido em sua declaração e a tentativa de armazenar valores de tipo distintos acarretará em erro.
Observe um exemplo de operação que gerará um erro:
soma = 2 + "2";
A operação tenta somar um tipo caractere com um tipo inteiro; o que não é permitido em linguagens fortemente tipadas. Alguns exemplos de linguagens fortemente tipadas são C e Java.
Existem também as linguagens de programação fracamente tipadas, nas quais o tipo de dado não é uma prioridade. Por conta disso, podemos especificar um tipo para um dado, mas usá-lo como outro tipo. Nesse caso, a conversão de tipos é realizado automaticamente.
Observe, por exemplo, o código a seguir:
soma = 2 + "2";
O resultado a ser armazenado na variável soma é 22. Isso acontece porque o número 2 é tratado como sendo do tipo caractere e é concatenado com o caractere 2". O mesmo código teria gerado um erro em uma linguagem fortemente tipada.
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.
Nos dois exemplos seguimos basicamente o mesmo padrão: primeiro informamos o tipo da variável, seguido de seu identificador e de seu valor inicial. Perceba,
entretanto, que, em C++, as declarações terminam com “;”. Outro aspecto distinto diz respeito ao uso de aspas simples e duplas.
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).
compare_arrows
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.
Assim como as variáveis, entretanto, as constantes precisam ser declaradas e devem ter seu tipo e identificador definidos.
Observe como declarar uma constante no Portugol Studio e no C++:
	Declaração de Variáveis
	Portugol Studio
	C++
	const  real PI = 3.14
const inteiro MESES = 12
	const float PI = 3.14;
const int MESES = 12;
A declaração de constantes é muito parecida no Portugol Studio e no C++. Nos dois casos, a primeira palavra a ser escrita é const, seguida do tipo da constante, seu identificador e seu valor.
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
	+
	Soma
	  -  
	  Subtração  
	  /  
	  Divisão  
	  *  
	  Multiplicação  
	  %  
	  Resto  da divisão  
	Operadores Relacionais
	  >   
	  Maior  que  
	  <   
	  Menor  que  
	  >=  
	  Maior  ou igual  
	  <=  
	  Menor  ou igual  
	  ==  
	  Igual  a  
	  !=  
	  Diferente  de  
	Operadores Lógicos
	!
	Não
	&&
	E
	||
	Ou
	Operadores Especiais de Atribuição
	  +=  
	  Soma  e atribui. Exemplo: res+=2  
	  -=  
	  Subtrai  e atribui. Exemplo: res-=2  
	  /=  
	  Divide  e atribui. Exemplo: res/=5  
	  *=  
	  Multiplica  e atribui. Exemplo: res*=3  
	Operadores de Atribuição
	  =  
	  Atribuição  de valor a variáveis ou constantes.  
	Operadores de Incremento / Decremento
	  ++  
	  Incremento  
	  --  
	  Decremento  
Na próxima aula, veremos de que maneira os operadores se combinam às variáveis e constantes para construção de expressões.
Atividade
1. Correlacione os conceitos com suas definições:
Constante 1 Variável 2 Memória principal 3 Entrada -> processamento -> saída 4
a) Armazena, em caráter temporário, os dados a serem utilizados no programa
1234
b) Esquema básico de funcionamento dos computadores.
1234
c) Espaço da memória para armazenamento de um valor que não será modificado.
1234
d) Espaço da memória para armazenamento de um valor que poderá ser modificado.
1234
Gabarito comentado
2) Observe os identificadores a seguir. Seguindo as regras da linguagem de programação C++, informe se os mesmos são válidos (V) ou inválidos (I).
a) nomeAluno
VálidoInválido
b) data de nascimento
VálidoInválido
c) SalARioATuAL
VálidoInválido
d) _salario01
VálidoInválido
e) *Média*
VálidoInválido
f) cor_favorita
VálidoInválido
g) TotCompras
VálidoInválido
h) 1a.nota
VálidoInválido
i) tel.celular
VálidoInválido
Gabarito comentado
Atividade
3) a) Você se lembra do exercício da aula 1, no qual escreveu um algoritmo para converter uma quantia em reais para uma quantia em dólares? Você precisou perguntar a quantia em reais e a cotação do dólar do dia e calculou quantos dólares seria possível comprar. Imagine que você vai escrever esse algoritmo no Portugol Studio. Como ficaria a declaração de variáveis para esta situação?
b) Agora imagine que você vai escrever o algoritmo anterior na linguagem de programação C++. Como seria a declaração de variáveis?
c) A aceleração da gravidade (ag) na Terra possui um valor constante aproximado de 9,8 m/s2. Imagine que um corpo é abandonado em queda livre de uma determinada altura e leva um número de segundos (seg) para chegar ao solo. Considere que a velocidade (vel) da queda pode ser calculada multiplicando-se a aceleração da gravidade pelo tempo. Se você precisasse criar um algoritmo para resolver esse problema no Portugol Studio, como seria a declaração de variáveis e constantes?
d) Considerando o problema anterior, como ficaria a declaração de variáveis e constantes caso a solução fosse escrita em C++?
Gabarito comentado
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.
O raciocínio lógico nos ajuda a entender as coisas observando, coletando dados, pensando sobre os fatos que conhecemos e depois calculando as coisas com base no que já sabemos. Ele nos ajuda também a usar nosso conhecimento existente para estabelecer regras e checar fatos, e, por fim, contribui para o desenvolvimento de uma nova forma de pensar: o pensamento computacional.
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.
É 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 envolve tomar esse problema e dividi-lo em uma série de problemas menores e mais gerenciáveis ​​(decomposição).
Cada um desses problemas menores pode ser examinado individualmente, considerando como problemas semelhantes foram resolvidos anteriormente. Existem quatro pilares para o pensamento computacional:
Decomposição
Envolve a decomposição do problema em partes menores e mais gerenciáveis
Reconhecimento de padrões
Busca semelhanças entre o problema e outras soluções anteriores e também dentro do próprio problema.
Abstração
Concentra-se nas informações relevantes para o problema, ignorando detalhes que não são importantes.
Algoritmos
Desenvolvem uma solução passo a passo para o problema, incluindo as regras a serem seguidas para tal
	
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
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
Pseudocódigo
Os programas de computador são escritos em linguagens de programação. Essas linguagens possuem uma sintaxe muito particular que deve ser respeitada para que o programa seja executado corretamente.
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.
A codificação desenvolve habilidades para a resolução de problemas e permite que você
crie uma solução que funcione exatamente da maneira que deseja.
As variáveis são essenciais e dificilmente você criará um programa ou algoritmo no qual não precise delas.
Armazenamento de dados
entrada > processamento > saída
Os dados de entrada e as informações a serem exibidas como saídas ficam armazenados na memória principal do computador, conhecida como RAM1 – Random Access Memory ou Memória de Acesso Aleatório.
é 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.
Uma variável é um espaço da memória principal dedicado ao armazenamento temporário de valores
Ela funciona como um recipiente em que colocamos os valores dos quais precisamos para o programa e retiramos de lá quando eles já não são mais necessários.
Quando criamos uma variável damos o nome dela de identificador 
Identificador funciona como um rotulo para a área de memoria, para recuperar ou armazenar
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 sublinhado (_).
C++ é uma linguagem case sensitive.
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 letras e números.
Caracteres especiais e espaços em branco não podem ser utilizados.
Case sensitive – os caracteres maiúsculos são diferentes dos caracteres minúsculos. Ex: telefone, Telefone e TELEFONE representariam três variáveis diferentes.
	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
Para que uma variável possa ser utilizada em um programa, ela precisa ser criada ou declarada.
	Declaração de Variáveis
	Portugol Studio
	C++
	cadeianome = “Luciana”
inteiroidade = 42
realsaldo = 550.00
cadeiasexo = ‘F’
logicotrabalha = verdadeiro
	charnome[ ] = “Luciana”;
intidade = 42;
floatsaldo = 550.00;
charsexo[ ] = “F”;
booltrabalha = true;
No C++, as variáveis lógicas são declaradas como do tipo bool e podem receber true (verdadeiro) ou false (falso).
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.
	Declaração de Variáveis
	Portugol Studio
	C++
	const  real PI = 3.14
const inteiro MESES = 12
	const float PI = 3.14;
const int MESES = 12
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.
	Operadores Matemáticos
	+
	Soma
	  -  
	  Subtração  
	  /  
	  Divisão  
	  *  
	  Multiplicação  
	  %  
	  Resto  da divisão  
	
Operadores Relacionais
	  >   
	  Maior  que  
	  <   
	  Menor  que  
	  >=  
	  Maior  ou igual  
	  <=  
	  Menor  ou igual  
	  ==  
	  Igual  a  
	  !=  
	  Diferente  de  
	
Operadores Lógicos
	!
	Não
	&&
	E
	||
	Ou
	
Operadores Especiais de Atribuição
	  +=  
	  Soma  e atribui. Exemplo: res+=2  
	  -=  
	  Subtrai  e atribui. Exemplo: res-=2  
	  /=  
	  Divide  e atribui. Exemplo: res/=5  
	  *=  
	  Multiplica  e atribui. Exemplo: res*=3  
	
Operadores de Atribuição
	  =  
	  Atribuição  de valor a variáveis ou constantes.  
	
Operadores de Incremento / Decremento
	  ++  
	  Incremento  
	  --  
	  Decremento  
1. 
Gabarito comentado:
1 – C: A memória principal é responsável por armazenar temporariamente todos os dados e informações manipulados pelo programa.
2 – D: Os computadores têm muitas funções, mas, no esquema mais simples de seu funcionamento, podemos dizer que o computador recebe dados de entrada que são processados para que sejam produzidas informações de saída.
3 – A: Ao definir uma constante, você está informando ao programa que definiu um espaço da memória para armazenamento de um valor que não será alterado ao longo de sua execução.
4 – B: Os dados a serem processados pelo programa precisam ser armazenados em variáveis, que são espaços da memória que recebem um identificador e que podem ter seu conteúdo alterado.
) a) Você se lembra do exercício da aula 1, no qual escreveu um algoritmo para converter uma quantia em reais para uma quantia em dólares? Você precisou perguntar a quantia em reais e a cotação do dólar do dia e calculou quantos dólares seria possível comprar. Imagine que você vai escrever esse algoritmo no Portugol Studio. Como ficaria a declaração de variáveis para esta situação?
a) Será necessário criar três variáveis do tipo real, conforme declaração a seguir:
real quantia_reais = 0
real quantia_dolares = 0
real cotacao = 0
b) Agora imagine que você vai escrever o algoritmo anterior na linguagem de programação C++. Como seria a declaração de variáveis?
b) No C++, as variáveis seriam declaradas da seguinte maneira:
float quantia_reais = 0;
float quantia_dolares = 0;
float cotacao = 0;
c) A aceleração da gravidade (ag) na Terra possui um valor constante aproximado de 9,8 m/s2. Imagine que um corpo é abandonado em queda livre de uma determinada altura e leva um número de segundos (seg) para chegar ao solo. Considere que a velocidade (vel) da queda pode ser calculada multiplicando-se a aceleração da gravidade pelo tempo. Se você precisasse criar um algoritmo para resolver esse problema no Portugol Studio, como seria a declaração de variáveis e constantes?
c) Para este algoritmo, será necessário criar duas variáveis e uma constante:
const real ag = 9.8
real seg = 0
real vel = 0
d) Considerando o problema anterior, como ficaria a declaração de variáveis e constantes caso a solução fosse escrita em C++?
d) No C++, a declaração seria feita da seguinte maneira:
const float AG = 9.8;
float seg = 0;
float vel = 0;
		
	
	
		
		Teste de
onhecimento
	 avalie sua aprendizagem
		
		
	INTRODUÇÃO A PROGRAMAÇÃO
	
		Lupa
	 
	Calc.
	
	
	 
	 
	 
	 
	
	CCT0825_A3_202103402691_V1
	
	
	
	
		Aluno: PATRICIA PEREIRA LOPO
	Matr.: 202103402691
	Disc.: INTRODUÇÃO A PROGR. 
	2021.2 EAD (GT) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Observe a tabela da verdade para a expressão A && B || B || A.
	A
	B
	A && B
	A && B || B
	A && B || B || A
	V
	V
	V
	V
	 
	V
	F
	F
	F
	 
	F
	V
	F
	V
	 
	F
	F
	F
	F
	 
Os valores que completam correta e sequencialmente a coluna A && B || B || A, de cima para baixo, são:
	
	
	
	F - V - V - F
	
	
	F - F - V - F
	
	
	V - F - F - F
	
	
	V - V - V - F
	
	
	V - V - V - V
	
	
	
	 
		
	
		2.
		Indique qual alternativa calcula corretamente a média aritmética das notas AV1 e AV2 de uma determinada disciplina
	
	
	
	MEDIA = AV1 + AV2 / 2;
	
	
	MEDIA = (AV1 ** AV2) / 2;
	
	
	MEDIA = (AV1 * AV2) / 2;
	
	
	MEDIA = (AV1 - AV2) / 2;
	
	
	MEDIA = (AV1 + AV2) / 2;
	
Explicação:
MEDIA = (AV1
+ AV2) / 2; - OK
	
	
	
	 
		
	
		3.
		Indique qual o tercho em C++  que calcula corretamente a média das notas AV1 e AV2 de uma determinada disciplina.
	
	
	
	MEDIA = (AV1 ** AV2) / 2;
	
	
	MEDIA =  (AV1 - AV2) / 2;
	
	
	MEDIA =  (AV1 + AV2) / 2;
	
	
	MEDIA  =  (AV1 * AV2) / 2;
	
	
	MEDIA   =  AV1 + AV2 / 2;
	
Explicação:
Conforme aula e gabarito.  É importante primeiro somar as notas e depois dividir por 2. 
	
	
	
	 
		
	
		4.
		Monte a tabela da verdade para a expressão A || B && C && !A.
	A
	B
	C
	!A
	B && C
	B && C && !A
	A || B && C && !A
	V
	V
	V
	F
	V
	F
	 
	V
	V
	F
	F
	F
	F
	 
	V
	F
	V
	F
	F
	F
	 
	V
	F
	F
	F
	F
	F
	 
	F
	V
	V
	V
	V
	V
	 
	F
	V
	F
	V
	F
	F
	 
	F
	F
	V
	V
	F
	F
	 
	F
	F
	F
	V
	F
	F
	 
A sequência de valores que preenche a última coluna, de cima para baixo, é:
	
	
	
	V, V, V, V, V, F, F, F
	
	
	V, F, V, F, V, F, V, F
	
	
	F, F, F, F, F, V, V, V
	
	
	F, V, F, V, V, F, V, F
	
	
	V, V, F, F, V, V, F, F
	
	
	
	 
		
	
		5.
		Assinale a opção correta.
	
	
	
	os operadores matemáticos não tem precedência de uso
	
	
	As expressões lógicas retornam valores inteiros
	
	
	São operadores lógicos : &&, ||, !=
	
	
	São operadores relacionais : = , > , <
	
	
	Os operadores matemáticos são : +, - , *, / e %.
	
Explicação:
Os operadores matemáticos são : +, - , *, / e %. = VERDADE
São operadores lógicos : &&, ||, != -->  != não é operador lógico e sim relacional (diferente) --> FALSO
São operadores relacionais : = , > , < --->  = não é operador relacional e sim comando de atribuição de valor a variável.--> FALSO
As expressões lógicas retornam valores inteiros --> FALSO, retornam valores lógicos (V ou F)
os operadores matemáticos não tem precedência de uso --: FALSO, há precedencia sim, o * tem preferencia sobre a soma e subtrção
 
 
	
	
	
	 
		
	
		6.
		Assinale a alternativa que apresenta APENAS os exemplos de operadores lógicos.
	
	
	
	&&, || e !
	
	
	=, > e ?
	
	
	!, > e >=
	
	
	&&, >= e <=
	
	
	+, - e *
	
Explicação:
	 
	Falso. O único operador lógico é o !
	!, > e >=
	 
	 Verdadeiro.
	&&, || e !
	 
	Falso. Nâo há operador lógico neste item.
	=, > e ?
	 
		 
	Falso. O único operador lógico é o &&
	
	&&, >= e <=
	 
	Falso. Nâo há operador lógico neste item.
	+, - e *
	
	
	
	
	
	 
		
	
		7.
		Analise o trecho de código abaixo e depois marque a opção correta para o que se pede:
  int x, y,a , b;
  float z;
  a = 14;
  b = 3;
  x = a / b;
  y = a % b;
  z = y / x;
 Qual seria o valor de x?
	
	
	
	4.66666
	
	
	3
	
	
	4
	
	
	14
	
	
	5
	
Explicação:
Fazendo um teste de mesa e sabendo que a divisão com  / entre inteiros fornece o quociente da divisão e o operador % fornece o resto da divisão inteira, chegamos no valor x igual a 4.
	
	
	
	 
		
	
		8.
		Assinale a alternativa que apresenta APENAS os exemplos de operadores relacionais.
	
	
	
	&&, || e ~
	
	
	&&, >= e ||
	
	
	+, - e *
	
	
	=, > e ||
	
	
	<, > e >=
	
Explicação:
	
	<, > e >=
	 
	Falso. Nenhum é relacional
	&&, || e ~
	 
	Falso. O único relacional é o >
	=, > e ||
	 
	Falso. O único relacional é o >= 
	&&, >= e ||
	 
	Falso. Nenhum relacional
	+, - e *
	
	
	
		1.
		C++ é uma linguagem de programação compilada. Leia as assertivas a seguir e assinale Verdadeiro ou Falso conforme o que é dito sobre as funções do compilador:
(  ) Verificar erros de sintaxe no programa;
(  ) Produzir um outro programa em linguagem de máquina;
(  ) Executar o programa sem necessidade de conversão alguma.
	
	
	
	V - V - F
	
	
	V - V - V
	
	
	F - V - F
	
	
	V - F - F
	
	
	F - F - F
	
	
	
	 
		
	
		2.
		No C++, para que os acentos sejam exibidos corretamente durante a execução de um programa, é preciso que sejam utilizadas a biblioteca _______________ e a função _______________.
	
	
	
	iostream - ptb
	
	
	iostream - setlocale
	
	
	math - math.round
	
	
	locale - ptb
	
	
	locale - setlocale
	
	
	
	 
		
	
		3.
		Imagine que você viajou para os Estados Unidos e está muito confuso com a forma como os americanos medem a temperatura, que é em Fahrenheit. Para ficar com menos dúvidas, você decide criar um algoritmo que, dada uma temperatura em Fahrenheit, exiba seu equivalente em graus Celsius. Com base na sintaxe do Portugol Studio, qual das alternativas a seguir apresenta o trecho da solução a ser escrito no lugar das interrogações a seguir?
programa {
  funcao inicio( ) {
    ????????
  }
}
	
	
	
	real tempF, tempC
escreva("Temperatura em Fahrenheit: ")
leia(tempF)
escreva("Temperatura em graus Celsius: ", tempC)
	
	
	escreva("Temperatura em Fahrenheit: ")
leia(tempF)
tempC=(tempF-32)/1.8
escreva("Temperatura em graus Celsius: ", tempC)
	
	
	real tempF, tempC
escreva("Temperatura em Fahrenheit: ")
leia(tempF)
tempC=(tempF-32)/1.8
escreva("Temperatura em graus Celsius: ", tempC)
	
	
	real tempF, tempC
escreva("Temperatura em Fahrenheit: ")
leia(tempF)
tempC=(tempF-32)/1.8
	
	
	real tempF, tempC
escreva("Temperatura em Fahrenheit: ")
tempC=(tempF-32)/1.8
escreva("Temperatura em graus Celsius: ", tempC)
	
	
	
	 
		
	
		4.
		Observe o algoritmo a seguir:
1 programa
2 {
3  inclua biblioteca Matematica --> mat
4  funcao inicio()
5  {
6      real qtdeDin, valComb, qtdeLitros
7      escreva("Quanto custa o litro do combustível? R$ ")
8      leia(valComb)
9      escreva("Quantos reais você tem? R$ ")
10     leia(qtdeDin)
11     qtdeLitros=qtdeDin/valComb
12     escreva("Com R$ ", qtdeDin, " você consegue abastecer ", mat.arredondar(qtdeLitros,2)," litros de combustível.")
13     }
14 }
Sabendo que o valor do litro do combustível é R$ 3.90 e que você dispõe de R$ 200.00 para abastecer, qual mensagem seria exibida pelo computador na linha 12?
	
	
	
	"Com R$ qtdeDin você consegue abastecer mat.arredondar(qtdeLitros,2) litros de combustível."
	
	
	"Você consegue abastecer 51.28 litros de combustível."
	
	
	"Com R$ 200.00 você consegue abastecer 51.28 litros de combustível."
	
	
	"Você consegue abastecer 51.28 litros de combustível com R$ 200.00."
	
	
	"Com R$ 200.00 você consegue abastecer 51.287645 litros de combustível."
	
	
	
	 
		
	
		5.
		Utilizando as regras do Portugol Studio, imagine que você precisa escrever um algoritmo que receba o ano atual e o ano de nascimento de um usuário, calcule e exiba a sua idade através da mensagem "Você tem ou fará XX anos", onde XX é a idade calculada. Qual das alternativas a seguir mostra a instrução correta a ser utilizada na exibição da idade?
	
	
	
	escreva("Você tem ou fará " * idade * " anos")
	
	
	escreva("Você tem ou fará ", idade, " anos")
	
	
	escreva("Você tem ou fará " /idade/ " anos")
	
	
	leia("Você tem ou fará ", idade, " anos")
	
	
	leia("Você tem ou fará " / idade/ " anos")
	
	
	
	 
		
	
		6.
		Assinale a opção correta :
	
	
	
	Para entrada de dados usamos cin com >> e para saída de dados usamos cout com <<
	
	
	Para entrada de dados usamos cout com <<  e para saída de dados usamos cin com >>
	
	
	Para entrada de dados usamos cout  e para saída de dados usamos cin
	
	
	Para entrada de dados usamos read e para saída de dados usamos write
	
	
	Para entrada de dados usamos cin com <<  e para saída de dados usamos cout com >>
	
Explicação:
Basta seguir as descrições na aula 2.
	
	
	
	 
		
	
		7.
		Marque a opção correta para a declaração das variáveis conforme o trecho de código abaixo, que calcula a média de 3 notas de 1 aluno:
   printf (" nota 1 = ");
   scanf("%f", nota1);
   printf (" nota 2 = ");
   scanf("%f", nota2);
   printf (" nota 3 = ");
   scanf("%f", nota3);
   media=(nota1+nota2+nota3)/3;
   printf ("media= %f",media);
   
	
	
	
	float nota1..nota3, media;
	
	
	int nota1, nota2, nota3, media;
	
	
	float nota1, nota2, nota3, media;
	
	
	real nota1, nota2, nota3;
	
	
	nota1, nota2,
nota3 : float
	
Explicação:
as 4 variáveis precisam ser float, para conterem valores com casas decimais
	
	
	
	 
		
	
		8.
		Marque a opção correta quanto ao uso dos comandos de entrada e saída em C++
	
	
	
	cout < lendo idade; cin > idade
	
	
	cout "lendo a idade"; cin idade;
	
	
	exiba "lendo a idade"; lendo idade;
	
	
	cout << "lendo a idade"; cin >> idade;
	
	
	System.out.println("lendo idade"); System.out.println("lendo idade");
	
Explicação:
	Falso. Erro no cout e no cin. Os operadores são >> e <<. E ainda ?: variável não tem espaço em branco
	cout < lendo idade; cin > idade
	 
	 VErdade
	cout << "lendo a idade"; cin >> idade;
	 
	Falso.  Faltam os operadores >> e <<
	cout "lendo a idade"; cin idade;
	 
	Falso. Em C++ não é exiba e lendo.
	exiba "lendo a idade"; lendo idade;
	 
	Falso. Não é Java. Em C++ usam-se cout para saída de dados e cin para entrada de dados
	System.out.println("lendo idade"); System.out.println("lendo idade");
	
	
	
	
		1.
		Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas,
sendo que na 1ª. execução o valor de entrada é 7 e na 2ª. execução o valor de entrada é 8.    Para isso, considere
o seguinte trecho em C++.
  int num;
  cout << "Digite um numero: ";
  cin >> num;
  if (num != 2 || num != 4 || num != 6)
  {
      num = num + 2;
      cout << num << " ";
  }
  if (num != 8)
  {
      num--;
      cout << num << " ";
  }
  else
     cout << num * 5 ;
 
	
	
	
	9  40
 
	
	
	9   6   10    9
 
	
	
	9   8   10  40
 
	
	
	8  10   40
 
	
	
	9   8    10   9
 
	
Explicação:
Analisando o trecho de programa em C++ ...
1a. execução : num recebe 7.  Daí, testamos o 1o. if.   Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if.  Então, num recebe 9 e é impresso o valor 9 na tela.
Seguimos para o próximo if e testamos sua condição.  É verdade que 9 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 9 para 8 e imprimimos o valor 8.
Concluindo esta 1a. execução :  Foram impressos 9 8
2a. execução : num recebe  8.  Daí, testamos o 1o. if.   Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if.  Então, num recebe 10 e é impresso o valor 10.
Seguimos para o próximo if e testamos sua condição.  É verdade que 10 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 10 para 9, imprimindo o valor 9.
Concluindo esta 2a. execução :  Foram impressos 10 9 
	
	
	
	 
		
	
		2.
		Em linguagem de programação, existe uma estrutura que é empregada em situações em que é preciso tomar uma decisão a respeito de determinado resultado que será obtido em duas situações diversas. Marque a opção que determina a estrutura de controle citada:
	
	
	
	Vetorial
	
	
	Matricial
	
	
	Repetição
	
	
	Recursiva
	
	
	Decisão
	
Explicação:
A opção que determina a estrutura de controle citada é a Decisão
	
	
	
	 
		
	
		3.
		Analise o programa abaixo e selecione a alternativa que contenha a condição correta para que o número 27 seja mostrado na tela.
 
#include
using namespace std;
int main()
{
int N1, N2;
N1= 27;
N2= 54;
if ( ______________ )
{
   cout<< N2;
}
else
{
   cout<< N1;
}
return 0;
}
	
	
	
	N1 > N2 || N2 < 50
	
	
	N1 < N2 && N1 < 50
	
	
	N2 > N1 || N1 > 50
	
	
	N1 < N2 && N1 > 20
	
	
	N2 == N1 || N2 > 20
	
	
	
	 
		
	
		4.
		 Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução  o valor de entrada é 10 e na 2ª. execução o valor de entrada é 0.    Para isso, considere o seguinte trecho em C++.
  int num;
  cout << "Digite um numero: ";
  cin >> num;
  if (num  > 0)
  {
      num++;
      cout << num << " ";
  }
  cout << num + 1 << " ";
  if (num < 0)
  {
      num--;
      cout << num << " ";
  }
  else
     cout << num * 10 ;
 
	
	
	
	11   110    1   0
 
	
	
	11   12   110   1   0
 
	
	
	11  110  1  0
 
	
	
	11   12    110
 
	
	
	11  110  1 10
 
	
Explicação:
Analisando ...
1a. execução  : Valor de entrada é 10. Logo, num recebeu 10 na entrada.
1o. teste >>>  10 > 0 ? Sim . Então, entramos no bloco do 1o. if e fazemos num receber 11. Depois, exibimos 11 na tela. Seguindo... é exibido o valor de num + 1, ou seja, é exibido na tela o valor 12. 
2o. teste >>> 11 < 0 ? Não. Então, entramos no último else que imprime o resultado de 11 * 10, que é 110
Concluindo a 1a. execução para a entrada 10 :           11  12  110
 
2a. execução :  Valor de entrada é 0.  Logo, num recebe 0 na entrada.
1o. teste >>> 0 > 0 ? Falso.  Não entramos no 1o. if. SEguindo em frente temos que o valor de num+1 é exibido na tela. Ou seja, 1 é exibido na tela.
2o. teste >>> 1 < 0 ? Não. Então, entramos no último else, que imprime o valor de 1 * 10, que é 10.
Concluindo a 2a. execução para a entrada 0 :     1   10
 
	
	
	
	 
		
	
		5.
		Para satisfazer a regra de que para fazer AV3 o aluno deve ter nota maior ou igual a 4 em pelo menos uma das outras duas Avaliacoes, qual seria a sentença correta
	
	
	
	Se (AV1 > 4) ou (AV2 > 4)
	
	
	Se (AV1 > 4) e (AV2 > 4)
	
	
	Nenhuma outra alternativa satisfaz
	
	
	Se (AV1 >= 4) e (AV2 >= 4)
	
	
	Se (AV1 >= 4) ou (AV2 >= 4)
	
Explicação:
	 
	Verdadeira
	Se (AV1 >= 4) ou (AV2 >= 4)
	 
	Falsa. Tinha que ser >= e não apenas >
	Se (AV1 > 4) ou (AV2 > 4)
	 
	FAlsa.  Nâo tem que ter 4 ou mais nas duas provas, mas apenas em uma das provas.
	Se (AV1 >= 4) e (AV2 >= 4)
	 
	FAlsa. Tinha que ser >=  e no lugar do e tinha que se ou.
	Se (AV1 > 4) e (AV2 > 4)
	 
	Falsa.  A 1a. alternativa é a correta. Ou seja : Se (AV1 >= 4) ou (AV2 >= 4)
	Nenhuma outra alternativa satisfaz
	
	
	
	
	
	 
		
	
		6.
		Considere o trecho de programa em C++. O que é impresso na tela ?
int x = 10, y = 3, z, k;
y = x + y - 1;
z = x/y;
k = y % x;
if ( k != 0)
cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n";
	
	
	
	Nada é impresso na tela, pois k é zero.
	
	
	10 12 0 2
	
	
	x= 10 y = 12 z = 0 k = 2
	
	
	x = 10 y = 12 z = 0.833 k = 1.2
	
	
	10 12 0.833 1.2
	
Explicação:
É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo da aula 5 é suficiente, junto com declaração de variáveis de aula anterior.
int x = 10, y = 3, z, k; 
y = x + y - 1; 
z = x/y; 
k = y % x; 
if ( k != 0) 
cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; 
 
Teste de mesa 
	x
	y
	z
	k
	10
	3
	 
	 
	 
	12
	0
	2
	 
	 
	 
	 
y recebe 10+3-1, que é 12. Logo, y recebe 12
z recebe x/y, que é 10/12 que dá zero.
k recebe 12%10, que dá 2.
Como k é diferente de 0 temos que será impresso :
x = 10  y = 12  z = 0  k = 2
	
	
	
	 
		
	
		7.
		Você deseja analisar se um número inteiro qualquer fornecido pelo usuário é par e positivo ou par e negativo. Com base na sintaxe do Portugol Studio, o trecho que realiza corretamente o teste para descobrir as características do número é:
	
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num^2
se (resto==1 e num>1)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 ou num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 ou num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num/2
se (resto==0 !! num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 !! num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num<0)
{
escreva("Este número é ímpar e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é par e positivo!")}
	
	
	
	 
		
	
		8.
		Sobre a estrutura seletiva "se", pode-se afirmar que ela
(   ) permite que novas estruturas seletivas sejam definidas dentro dela;
(   ) restringe a execução de um trecho do código à veracidade, ou não, de uma ou mais condições;
(   ) não permite o teste de condições que combinem, na mesma expressão, operadores de tipos distintos;
	
	
	
	V - F - V
	
	
	F - V - F
	
	
	F - F - F
	
	
	V - V - V
	
	
	V - V - F
		
	
	 
		
	
		1.
		Uma lanchonete está disponibilizando para seus clientes um terminal através do qual poderão fazer seu pedido. Para que isso aconteça, o terminal deve exibir o menu de itens disponíveis conforme se vê a seguir:
*** Cardápio ***
100 - Hambúrguer - R$5,50
101 - Cachorro-quente - R$4,50
102 - Milkshake - R$7,00
103 - Pizza brotinho - R$8,00
104 - Cheeseburguer - R$8,50
Informe o código do seu pedido:
Uma vez que o cliente informe o código do item desejado, o terminal deverá perguntar a quantidade de itens que ele deseja pedir. Ao final, o usuário deverá informar o pedido do cliente e o valor a pagar.
Se você deseja escrever esse programa em C++ e optar pela estrutura SWITCH, como ficariam as linhas iniciais dessa seleção, até o caso de o item "hambúrguer" ser escolhido?
	
	
	
	while (codigo) {
  case 100: item="Hambúrguer";
    valor= qtde * 5.50;
  break;
}
	
	
	switch (codigo) {
  default 100: item="Hambúrguer";
    valor= qtde * 5.50;
  break;
}
	
	
	case (codigo) {
  switch 100: item="Hambúrguer";
    valor= qtde * 5.50;
  break;
}
	
	
	switch (codigo) {
  if 100: item="Hambúrguer";
    valor= qtde * 5.50;
  break;
}
	
	
	switch (codigo) {
  case 100: item="Hambúrguer";
    valor= qtde * 5.50;
  break;
}
	
	
	
	 
		
	
		2.
		Considerere um trecho de um programa em  C++. Qual a variável que será alterada e para qual valor ela mudará ?
int   a = 2, b = 4, x = 12, y = 11, z = 3;
             float t = 0;
            if (x < y+z)
                 if (y != z*4 - 2)
                     t = y/z;
                else
                     a = y % z;
             else
                b = z + y/x;
 
	
	
	
	A variável b ficará 1
	
	
	Nenhuma variável será alterada.
	
	
	A variável b ficará 3
	
	
	A variável t ficará 3
	
	
	A variável a ficará 1
	
Explicação:
int   a = 2, b = 4, x = 12, y = 11, z = 3;
             float t = 0;
            if (x < y+z)
                 if (y != z*4 - 2)
                     t = y/z;
                else
                     a = y % z;
             else
                b = z + y/x;
Analisando o trecho acima.
1o. if  :  12  < 14 ? Sim. Entrar no 1o. if.
2o. if : 11 !=  3 * 4 - 2, ou seja, 11 != 12-2, ou seja, 11 é diferente de 10 ? VErdadeiro. Entrar no 2o. if.
Então, é preciso fazermos t receber  y/z, ou seja, t receber 11/3, que dá 3.
 
	
	
	
	 
		
	
		3.
		Considere que o trecho de código em C++ foi executado 2 vezes, sendo que na 1ª. execução o valor de entrada foi 10 e na 2ª. execução, o valor de entrada foi 5. Ao final das duas execuções, respectivamente, o que foi impresso na tela ?
cout << "Digite um valor : ";
cin >> z;
switch(z) {
case 5 : cout << 3 * z << " ";
case 10 : cout << 11 /2 * z << " ";
case 20 : cout << z * z - 10 << endl;
break;
default : cout << "Entrada invalida. " << endl;
}
	
	
	
	55 90 15 27.5 15
	
	
	55 1
	
	
	15 25 15 50 90
	
	
	50 90 15 25 15
	
	
	15 27.5 15 55 90
	
Explicação:
O aluno deverá fazer um teste de mesa ou chinês para poder escolher a resposta certa. Tal questão envolve conhecimento de switch ... case com e sem break e de operadores aritméticos, como a divisão entre inteiros ocorrida no 2o. case.
	
	
	
	 
		
	
		4.
		   
	
	
	
	11  10  50  10
	
	
	10  50  10  2
	
	
	11  50  10  2
	
	
	11  50 10
	
	
	11  10  50  10  2
	
Explicação:
1ª. Execução : valor de a é 1
Entrar no case 1, depois no case 3 e em seguida, no case 5. 
Então será impresso  11
                                       10
2ª. Execução : valor de a é 5
Entrar no case 5 e imprimir  50
3ª. Execução : valor de a é 20
Entrar no case 20 e depois no case 30.
Então, será impresso        10
                                              2
Concluindo :
Valores impressos :  11  10  50  10 2
	
	
	
	 
		
	
		5.
		Um aluno de Introdução a Programação precisa escrever um programa que leia um caracter equivalente a uma estação do ano imprima o nome equivalente considerando que P- Primavera, V - Verão, O - Outono e I - Inverno. Qual a estrutura básica em C++ que deve ser utilizada para fazer esta seleção múltipla?
	
	
	
	switch/case
	
	
	do/while
	
	
	for
	
	
	break
	
	
	while
	
Explicação:
	 
	Falso. Comando de repetição
	do/while
	 
	Falso. Comando de repetição.
	for
	 
	Verdadeiro.
	switch/case
	 
	Falso. Comando de repetição.
	while
	 
	Falso. Comando de interrupção.
	break
	
	
 
	
	
	
	 
		
	
		6.
		Imagine que você precisa escrever um programa em C++ que exiba o nome do dia semana a partir de seu código numérico equivalente, conforme se vê a seguir. 1 - domingo, 2 - segunda-feira, 3 - terça-feira, 4 - quarta-feira, 5 - quinta-feira, 6 - sexta-feira, 7 - sábado. Se fosse utilizada a estrutura SWITCH e os testes fossem escritos na ordem em que os dias estão listados, os casos finais dessa estrutura, considerando que você deseja apresentar uma mensagem de erro caso o usuário informe um código equivocado, seriam.
	
	
	
	case 7:
  cout <<"sábado";
  break;  
default:
    cout <<"Código inválido!";
	
	
	case 7:
  cout <<"sábado";
  break;  
case not:
    cout <<"Código inválido!";
	
	
	default 7:
  cout <<"sábado";
  break;  
default:
    cout <<"Código inválido!";
	
	
	switch 7:
  cout <<"sábado";
  break;  
default:
    cout <<"Código inválido!";
	
	
	default 7:
  cout <<"sábado";
  break;  
switch:
    cout <<"Código inválido!";
	
	
	
	 
		
	
		7.
		Quero escrever um programa que leia o número equivalente a um dia da semana e retorne o nome equivalente considerando que 1- Domingo, 2 - Segunda etc. Qual  a estrutura básica em C++ que deve ser utilizada para fazer esta seleção múltipla?
	
	
	
	cout
	
	
	for
	
	
	switch/case
	
	
	do/while
	
	
	while
	
Explicação:
	
	switch/case
	 
	É para repetição
	do/while
	 
	É para repetição
	for
	 
	É para impressão na tela
	cout
	 
	É para repetição
	while
	
	
	
	 
		
	
		8.
		Às vezes me perguntam se existe alguma razão para existirem tantas formas de decisão nas linguagens de programação.
Eu sempre digo: Claro que sim!
Analise as afirmativas abaixo e escolha a opção certa.
I Se tivermos que fazer um teste e só executar um bloco, que pode ter uma instrução ou mais instruções, o if simples deverá ser escolhido.             
II Se tivermos duas possibilidades de respostas, não poderemos usar dois if(s) simples, onde o teste de um é o complementa o do outro,  porque poderão sair duas  respostas.  
III Se tivermos três possibilidades de respostas, podemos usar um if simples e um if composto que não teremos problemas com as respostas.    
IV Quando temos 10 possibilidades de respostas, poderemos usar 10 if(s) simples,  embora usar ifs encadeados seria mais eficiente. 
	
	
	
	As afirmativas II, III e IV são verdadeiras
	
	
	Somente a afirmativa II é verdadeira
	
	
	Somente a afirmativa I é verdadeira
	
	
	As afirmativas I e IV são verdadeiras
	
	
	Somente a afirmativa III é falsa
	
Explicação: As respostas falsas são conclusivas
Introdução a programação /codificação
Aula 1 
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.
O raciocínio lógico
nos ajuda a entender as coisas observando, coletando dados, pensando sobre os fatos que conhecemos e depois calculando as coisas com base no que já sabemos. Ele nos ajuda também a usar nosso conhecimento existente para estabelecer regras e checar fatos, e, por fim, contribui para o desenvolvimento de uma nova forma de pensar: o pensamento computacional.
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.
É 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 envolve tomar esse problema e dividi-lo em uma série de problemas menores e mais gerenciáveis ​​(decomposição).
Cada um desses problemas menores pode ser examinado individualmente, considerando como problemas semelhantes foram resolvidos anteriormente. Existem quatro pilares para o pensamento computacional:
Decomposição
Envolve a decomposição do problema em partes menores e mais gerenciáveis
Reconhecimento de padrões
Busca semelhanças entre o problema e outras soluções anteriores e também dentro do próprio problema.
Abstração
Concentra-se nas informações relevantes para o problema, ignorando detalhes que não são importantes.
Algoritmos
Desenvolvem uma solução passo a passo para o problema, incluindo as regras a serem seguidas para tal
	
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
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
Pseudocódigo
Os programas de computador são escritos em linguagens de programação. Essas linguagens possuem uma sintaxe muito particular que deve ser respeitada para que o programa seja executado corretamente.
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.
A codificação desenvolve habilidades para a resolução de problemas e permite que você crie uma solução que funcione exatamente da maneira que deseja.
As variáveis são essenciais e dificilmente você criará um programa ou algoritmo no qual não precise delas.
Armazenamento de dados
entrada > processamento > saída
Os dados de entrada e as informações a serem exibidas como saídas ficam armazenados na memória principal do computador, conhecida como RAM1 – Random Access Memory ou Memória de Acesso Aleatório.
é 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.
Uma variável é um espaço da memória principal dedicado ao armazenamento temporário de valores
Ela funciona como um recipiente em que colocamos os valores dos quais precisamos para o programa e retiramos de lá quando eles já não são mais necessários.
Quando criamos uma variável damos o nome dela de identificador 
Identificador funciona como um rotulo para a área de memoria, para recuperar ou armazenar
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 sublinhado (_).
C++ é uma linguagem case sensitive.
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 letras e números.
Caracteres especiais e espaços em branco não podem ser utilizados.
Case sensitive – os caracteres maiúsculos são diferentes dos caracteres minúsculos. Ex: telefone, Telefone e TELEFONE representariam três variáveis diferentes.
	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
Para que uma variável possa ser utilizada em um programa, ela precisa ser criada ou declarada.
	Declaração de Variáveis
	Portugol Studio
	C++
	cadeianome = “Luciana”
inteiroidade = 42
realsaldo = 550.00
cadeiasexo = ‘F’
logicotrabalha = verdadeiro
	charnome[ ] = “Luciana”;
intidade = 42;
floatsaldo = 550.00;
charsexo[ ] = “F”;
booltrabalha = true;
No C++, as variáveis lógicas são declaradas como do tipo bool e podem receber true (verdadeiro) ou false (falso).
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.
	Declaração de Variáveis
	Portugol Studio
	C++
	const  real PI = 3.14
const inteiro MESES = 12
	const float PI = 3.14;
const int MESES = 12
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.
	Operadores Matemáticos
	+
	Soma
	  -  
	  Subtração  
	  /  
	  Divisão  
	  *  
	  Multiplicação  
	  %  
	  Resto  da divisão  
	
Operadores Relacionais
	  >   
	  Maior  que  
	  <   
	  Menor  que  
	  >=  
	  Maior  ou igual  
	  <=  
	  Menor  ou igual  
	  ==  
	  Igual  a  
	  !=  
	  Diferente  de  
	
Operadores Lógicos
	!
	Não
	&&
	E
	||
	Ou
	
Operadores Especiais de Atribuição
	  +=  
	  Soma  e atribui. Exemplo: res+=2  
	  -=  
	  Subtrai  e atribui. Exemplo: res-=2  
	  /=  
	  Divide  e atribui. Exemplo: res/=5  
	  *=  
	  Multiplica  e atribui. Exemplo: res*=3  
	
Operadores de Atribuição
	  =  
	  Atribuição  de valor a variáveis ou constantes.  
	
Operadores de Incremento / Decremento
	  ++  
	  Incremento  
	  --  
	  Decremento  
		ma variável pode ser entendida como sendo:
	
	
	
	
1. 
Gabarito comentado:
1 – C: A memória principal é responsável por armazenar temporariamente todos os dados e informações manipulados pelo programa.
2 – D: Os computadores têm muitas funções, mas, no esquema mais simples de seu funcionamento, podemos dizer que o computador recebe dados de entrada que são processados para que sejam produzidas informações de saída.
3 – A: Ao definir uma constante, você está informando ao programa que definiu um espaço da memória para armazenamento de um valor que não será alterado ao longo de sua execução.
4 – B: Os dados a serem processados pelo programa precisam ser armazenados em variáveis, que são espaços da memória que recebem um identificador e que podem ter seu conteúdo alterado.
) a) Você se lembra do exercício da aula 1, no qual escreveu um algoritmo para converter uma quantia em reais para uma quantia em dólares? Você precisou perguntar a quantia em reais
e a cotação do dólar do dia e calculou quantos dólares seria possível comprar. Imagine que você vai escrever esse algoritmo no Portugol Studio. Como ficaria a declaração de variáveis para esta situação?
a) Será necessário criar três variáveis do tipo real, conforme declaração a seguir:
real quantia_reais = 0
real quantia_dolares = 0
real cotacao = 0
b) Agora imagine que você vai escrever o algoritmo anterior na linguagem de programação C++. Como seria a declaração de variáveis?
b) No C++, as variáveis seriam declaradas da seguinte maneira:
float quantia_reais = 0;
float quantia_dolares = 0;
float cotacao = 0;
c) A aceleração da gravidade (ag) na Terra possui um valor constante aproximado de 9,8 m/s2. Imagine que um corpo é abandonado em queda livre de uma determinada altura e leva um número de segundos (seg) para chegar ao solo. Considere que a velocidade (vel) da queda pode ser calculada multiplicando-se a aceleração da gravidade pelo tempo. Se você precisasse criar um algoritmo para resolver esse problema no Portugol Studio, como seria a declaração de variáveis e constantes?
c) Para este algoritmo, será necessário criar duas variáveis e uma constante:
const real ag = 9.8
real seg = 0
real vel = 0
d) Considerando o problema anterior, como ficaria a declaração de variáveis e constantes caso a solução fosse escrita em C++?
d) No C++, a declaração seria feita da seguinte maneira:
const float AG = 9.8;
float seg = 0;
float vel = 0;
uma variável pode ser entendida como sendo um endereço na memoria principal 
Uma Variavel Necessita de espaço na memória e define o tipo de dado a ser armazenado.
	
	
2.
Assinale a opção que apresenta somente nomes válidos para variáveis em C++.
	Conta, Total1, DIA-MÊS-ANO
	CONTA, TOTAL1, data
	CONTA, TOTAL1, 1DATA
	1conta, 2total, 3data
	Conta, Total, 5data
Não se pode começar nome de variável com digito
Não pode por acento ou hifem em nome de variável
	
		As palavras que fazem parte de um conjunto próprio da linguagem C++ são chamadas:
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	palavras reservadas
Dizemos que uma linguagem é de alto nível quando conseguimos ler e escrever usando palavras conhecidas por nós.
Comando PARA Não necessita de espaço em memória e nem de tipo de dado. É um comando de repetição.	
 
Comando Enquanto-Faça Não necessita de espaço em memória e nem de tipo de dado. É um comando de repetição.	
 
Variável necessita de espaço na memoria e define o tipo de dado a ser armazanado
 
Atribuição É uma operação ou comando.	
 
Estrutura de Seleção Falso. Não necessita de espaço em memória e nem de tipo de dado. É um comando de seleção, como if ou if/else, por exemplo.	
Se precisamos de armazenar 1 caracter usamos o tipo char na declaração da variável
Foot qualquer numero real, negativo, nulo ou spositivo
Se precisamos de armazenar 1 caracter usamos o tipo char na declaração da variável
		No C++, é possível declarar variáveis e constantes. Uma constante é um espaço da memória reservado a um valor que não se altera ao longo da execução de um programa. Imaginando que você precise de uma constante para armazenar o valor de PI (3,14), como seria feita sua declaração em C++?
	
	
	
	
	
	
	
	
	
	const float PI=3.14;

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando