Baixe o app para aproveitar ainda mais
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;
Compartilhar