Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de Programação 50010114058010 51110514020010 SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL ADMINISTRAÇÃO REGIONAL DO SENAC EM MINAS GERAIS PRESIDENTE DO CONSELHO REGIONAL Lázaro Luiz Gonzaga ELABORAÇÃO DO CONTEÚDO Simone Santos Pereira Bittencourt REVISÃO LINGUÍSTICA Elaine Fátima de Souza GMP/SEMD - Setor de Material Didático DIAGRAMAÇÃO Ricardo Tadeu Profeta GMP/SEMD - Setor de Material Didático DIRETOR REGIONAL Luciano de Assis Fagundes CAPA Alex de Souza Carvalho GMP/SEMD - Setor de Material Didático PROJETO GRÁFICO Ricardo Tadeu Profeta GMP/SEMD - Setor de Material Didático SENAC.DR.MG. Lógica de programação./Simone Santos Pereira Bittencourt. Belo Horizonte: SENAC/MG/SEMD, 2010. 72p. il. Inclui Bibliografia. Algoritmo; Funções; Vetor; Matriz; Programação. Ficha elaborada de acordo com as normas do SICS - Sistema de Informação e Conhecimento do Senac © SENAC/DR.MG.2010 Setor de Material Didático - SEMD Rua Tupinambás, 1.086 - Centro CEP 30.120-070 - Belo Horizonte - Minas Gerais 0800 7244440 - FAX.: (0xx31)3048-9174 Home page: www.mg.senac.br Reimpressão, 2013 Sumário O que é Lógica de Programação?, 5 O que é um Algoritmo?, 5 O que é uma Linguagem de Programação?, 6 Programação Estruturada, 6 Identificador, 8 Variáveis, Constantes e Operadores, 9 Operadores, 11 Constante, 13 Construção de um Algoritmo, 14 Comandos de Entrada e Saída de Dados, 18 Estrutura de Condição e Repetição, 21 Vetor e Matriz, 31 Procedimentos e Funções no Portugol, 43 Referências, 72 Lógica de Programação senac minas 5 O que é Lógica de Programação? Lógica de programação significa desenvolver um determinado raciocínio para programar, ou seja, criar um programa. O computador executa uma série de instruções através dos programas. Para que essas instruções sejam executadas, um profissional da área deve escrevê-las primeiro, antes de sua execução. Com isso, surge um conceito importante na programação chamado Algoritmo. O que é um Algoritmo? Algoritmo é uma sequência de instruções que serão executadas de acordo com uma ordem lógica. O algoritmo não se aplica apenas na área de Informática, pois podemos ter sequência de instruções em qualquer área. Na vida cotidiana, por exemplo, podemos ter um algoritmo ensinando a fritar um ovo. Esse algoritmo segue uma série de instruções, tais como:  Pegar o ovo.  Pegar a frigideira.  Pegar a lata de óleo.  Colocar o óleo na frigideira.  Colocar a frigideira no fogão.  Ascender o fogo do fogão.  Quebrar o ovo dentro da frigideira.  Jogar óleo quente sobre o ovo com a colher.  Retirar o ovo da frigideira.  Desligar o fogo do fogão. Lógica de Programação senac minas6 Já na área de Informática, podemos ter um algoritmo para somar dois números. Ao descrevermos a sequência de instruções necessárias para essa soma, podemos perceber que os dois números deverão ser sempre digitados para que a soma seja realizada e devemos também, que ter um resultado da operação aritmética. Esse algoritmo nos mostra a importância da entrada e saída dos dados. No decorrer do curso aprenderemos os comandos utilizados para entrada e visualização dos dados processados. Para começarmos a programar, devemos passar por duas etapas: 1ª Etapa: Escrever o algoritmo. 2ª Etapa: Converter o algoritmo em uma linguagem de programação. O que é uma Linguagem de Programação? São comandos de informática que farão com que instruções sejam executadas. É uma representação concreta de um Algoritmo. Quando um Algoritmo é convertido para a linguagem do computador e executado, damos o nome de Programa. Programação Estruturada A ideia principal da Programação Estruturada é reduzir a complexidade das instruções, dividindo-as em três níveis:  Top-Down: do geral para o mais detalhado. )) ExEmplo dE uma instrução dEscrita dE forma gEral: colocar o óleo na frigideira. )) ExEmplo da mEsma instrução Escrita dE forma dEtalhada: abrir a tampa do recipiente com o óleo, pegar o recipiente e levá-lo até a frigideira, virar o recipiente na direção da frigideira para que o óleo caia sobre ela. Lógica de Programação senac minas 7  Modularização: separar as instruções em módulos. Exemplo: criar um módulo com instruções para pegar o ovo, outro módulo com instruções para pegar a frigideira, outro para pegar a lata de óleo e assim por diante.  Estrutura de Controle: construir cada módulo usando sequência simples, comando condicional (se o gás do fogão acabar), comando repetitivo (repetir o processo de jogar óleo quente sobre o ovo). Para criarmos os nossos programas iremos usar uma linguagem para escrevermos os nossos algoritmos. Na verdade é uma pseudolinguagem chamada Portugol. Pelo fato de ser uma pseudolinguagem, não será reconhecida pelo computador. Durante a construção das instruções é importante ressaltar dois aspectos: 1) a Sintaxe, que se refere à forma de escrita; 2) a Semântica, que se refere ao significado da forma escrita. Sintaxe Todos os comando devem ser escritos com letras minúsculas e sublinhadas. Usaremos “;” (ponto e vírgula) para terminar um comando e “,” (vírgula) para separar variáveis e/ou mensagens. Não usaremos pontuação ao terminar um comando condicional ou repetitivo. Usaremos o “.” (ponto final) para finalizarmos o algoritmo. Lógica de Programação senac minas8 Identificador Ao elaborarmos os programas, trabalharemos com dados que serão armazenados temporariamente na memória. Mas, antes disso, devemos criar nomes que identifiquem esses dados. )) ExEmplo: Programa que somará 2 valores. Devemos criar um identificador para armazenar o 1º valor, outro para armazenar o 2º valor e um terceiro para armazenar o resultado. Sintaxe para criação de identificadores usar nomes escritos apenas com letras e dígitos numéricos; usar nomes escritos com letras maiúsculas; usar nomes começados sempre por letras; utilizar nomes não muito extensos; não usar espaço entre o nome; não usar caracteres especiais ( /, ª , { , ”” , $ , * , [ e outros) )) ExEmplo dE idEntificadorEs: • válidos - SOMA, NOME, TELEFONE • inválidos - 1ªNOTA, 5x8, DATA DE ENTREGA, NOTA(2) Tipos Básicos de Dados  Inteiro: qualquer número inteiro, seja positivo, negativo ou nulo. )) ExEmplos: 5, -30, 0, 12500  Real: qualquer número real, seja positivo, negativo ou nulo. )) ExEmplos: 12, 0 , -3 , 2,50 , -1,5  Caracter: qualquer conjunto de caracteres alfanuméricos. )) ExEmplos: Ana, Rua X, Escola Alfredo  Lógico: valores “falso” ou “verdadeiro” em proposições lógicas. )) ExEmplos: falso, verdadeiro Lógica de Programação senac minas 9 Variáveis, Constantes e Operadores Variável É um local na memória rotulada com o nome do identificador e cujo conteúdo possui um dado do tipo inteiro, real, caracter ou lógico. Declaração de Variáveis Sintaxe: tipo - LISTA DE NOME DE VARIÁVEIS )) ExEmplo: inteiro: NUMERO; lógico: APROVADO; real: SALDO, SALARIO; caracter: NOME, CIDADE; Atribuição de Valores a Variáveis As variáveis podem receber um valor, uma expressão matemática ou o conteúdo de outra variável. Para isso, utilizaremos o símbolo de atribuição “ ← ". Sintaxe: IDENTIFICADOR ← valor / expressão matemática / variável Lógica de Programação senac minas10 )) ExEmplo: NUMERO ← 21; APROVADO ← verdadeiro; SALDO ← 345,15; SALARIO ← 320 * 20,00; NOME ← “Ana”; CIDADE ← “Betim”; Importante • Quando a variável é declarada do tipo inteiro, ela poderá receber valor de uma outra variável do tipo inteiro ou um número inteiro. • Quando a variável é declarada do tipo real, ela poderá recebervalor de uma outra variável do tipo inteiro ou real e um número inteiro ou decimal. • Quando a variável é declarada do tipo caracter, ela poderá receber valor de uma outra variável do tipo caracter ou caracteres entre aspas (“ ”). • Quando a variável é declarada do tipo lógico, ela poderá receber valor de uma outra variável do tipo lógico ou os valores verdadeiro ou falso. Lógica de Programação senac minas 11 Operadores Operadores Aritméticos + Adição - Subtração / Divisão * Multiplicação ** Potência Operadores Relacionais = igual > maior que >= maior ou igual a < menor que <= menor ou igual a < > diferente Observação Se compararmos o valor de uma variável com outra através de um Operador Relacional, teremos um resultado verdadeiro ou falso. Exemplo: SALARIO > SALDO Lógica de Programação senac minas12 Operadores Lógicos e conjunção ou disjunção não negação Veja abaixo, o resultado das condições realizadas com os operadores “e”,“ou” e “não”. Operador OU V ou V verdadeiro V ou F verdadeiro F ou V verdadeiro F ou F falso Operador E V e V verdadeiro V e F falso F e V falso F e F falso Operador NÃO não V falso não F verdadeiro Lógica de Programação senac minas 13 Operações Mistas Ordem de Execução Operações 1ª Parênteses e funções 2ª Operadores aritméticos: - potência - multiplicação e divisão - adição e subtração 3ª Comparações 4ª Operadores lógicos: - não - e - ou Funções raiz(n) Calcula a raiz quadrada de n. mod Fornece o resto da divisão entre dois valores inteiros.Exemplo: 7 mod 2 (resultado 1) div Fornece o quociente da divisão entre dois valores inteiros. Exemplo: 7 div 2 (resultado 3) Constante É um local na memória rotulada com um nome, declarado no início do algoritmo e o seu conteúdo não pode ser alterado. )) ExEmplo: PI ← 3,14; Lógica de Programação senac minas14 Construção de um Algoritmo Para darmos início a um algoritmo devemos escrever o comando início em minúsculo e sublinhado. Para finalizarmos um algoritmo, devemos escrever o comando fim em minúsculo, sublinhado e com um ponto final. Entre os comando Início e fim estarão as declarações e inicializações de variáveis e em seguida os comandos. Sintaxe: início { este algoritmo tem “ tal “ objetivo } declaração e inicialização de variáveis comandos e/ou estruturas (processamento) fim. )) ExEmplo: Veja o algoritmo que calcula o salário-família de um funcionário com 3 dependentes. Imprima o nº de dependentes, o salário-família por dependente e o cálculo do salário-família do funcionário. O benefício por dependente é R$15,50. Lógica de Programação senac minas 15 início {Calcular o salário-família do funcionário} inteiro:NUMDEP; real: SALARIO, CALCULO; NUMDEP ← 3; SALARIO ← 15,50; CALCULO ← NUMDEP*SALARIO Imprima (“Salário Família = “, CALCULO); fim. )) outro ExEmplo: Veja o algoritmo que calcula a soma e a média de dois números inteiros. Imprima o resultado da soma e da média. início {Calcular a soma e média de dois números inteiros} inteiro:NUM1, NUM2, SOMA; real: MEDIA; NUM1 ← 10; NUM2 ← 20; SOMA ← NUM1+NUM2; MEDIA ← SOMA/2 Imprima (“Soma = “, SOMA); Imprima (“Média = “, MEDIA); fim. Lógica de Programação senac minas16 Você pode fazer o cálculo da soma e da média na hora da impressão. Veja o exemplo: início {Calcular a soma e média de dois números inteiros} inteiro:NUM1, NUM2, SOMA; real: MEDIA; NUM1 ← 10; NUM2 ← 20; Imprima (“Soma = “,NUM1+NUM2); Imprima (“Média = “,(NUM1+NUM2)/2); fim. Comentário Durante a construção de um algoritmo, sentimos a necessidade de acrescentar alguns textos explicativos sobre os comandos escritos. Esses textos não fazem parte do programa, ou seja, não são comandos que serão executados, são apenas comentários de trechos do algoritmo. Para indicar os comentários no meio do algoritmo, colocamos os comentários entre “chaves { }”. Lógica de Programação senac minas 17 )" atividadE 1: Construção de Algoritmo 1. Faça um algoritmo que calcule a média das seguintes notas 70,50,80,90 e 60. 2. Faça um algoritmo que calcule o produto dos números 10,20,5. 3. Faça um algoritmo que calcule a soma, o produto e a média dos valores: 20,30,40 e 50. 4. Faça um algoritmo que calcule o salário-família de um funcionário com 3 dependentes. O benefício por dependente é de R$9,35. 5. João foi à feira e comprou 3kg de batatas, 2kg de cenoura e 1kg de chuchu. O preço do sacolão é de R$ 0,49. Faça um algoritmo que calcule o valor total da compra. 6. Marta foi à farmácia comprar alguns remédios e o valor total da compra foi R$100,00. Mas, Marta possui um convênio que lhe concedia 10% de desconto. Faça um algoritmo que calcule quanto Marta pagou. 7. Rafael comprou um computador por U$ 800, considerando que o valor do dólar é R$1,75, faça um algoritmo que calcule o valor em reais. 8. A Sra. Fernanda está interessada em fazer uma compra de um veículo, cujo preço é R$ 13.500,00 e ela deverá dar uma entrada de 30% do valor do veículo e o restante será dividido em 36 vezes sem juros. Faça um algoritmo que calcule o valor de cada parcela. Lógica de Programação senac minas18 Comandos de Entrada e Saída de Dados No exemplo anterior, referente ao Cálculo do Salário-Família, foram atribuídas às variáveis NUMDEP e SALARIO os valores 3 e 15,50 respectivamente. Imagine agora, que o número de dependentes e o valor do Salário-Família passem a ser informados pelo usuário durante a execução do programa. Para isso, precisaremos de um comando de entrada, que permitirá ao usuário informar os valores a serem armazenados nas variáveis. Esse comando é chamado “leia” e classificado como comando de entrada, devido ao uso do teclado ou outro periférico de entrada para a entrada de valores. Sintaxe: leia ( VAR1, VAR2, VAR3, . . . , VARn ); Onde VAR1, VAR2, VAR3, . . . , VARn são variáveis que serão lidas através de um periférico de entrada. Lógica de Programação senac minas 19 )) ExEmplo: início {Calcular o salário-família do funcionário} inteiro:NUMDEP; real: SALARIO, CALCULO; leia(NUMDEP); leia(SALARIO); CALCULO ← NUMDEP*SALARIO Imprima (“Salário-Família = “, CALCULO); fim. Em todos os exemplos anteriores o resultado dos cálculos foram impressos através de um comando chamado “imprima”, o qual é utilizado para visualizar ou imprimir textos ou dados armazenados nas variáveis através de um periférico de saída (Monitor, impressora, dentre outros). Sintaxe: imprima ( VAR1, VAR2, VAR3, . . . , VARn ); Onde VAR1, VAR2, VAR3, . . . , VARn são variáveis que possuiem valores a serem exibidos através de um periférico de saída. Lógica de Programação senac minas20 )" atividadE 2: comandos dE Entrada E saída dE dados 1. Faça um algoritmo que leia 5 números e eleve esses números ao cubo. O programa deverá imprimir o resultado de cada número. 2. Faça um algoritmo que calcule o valor pago a um professor que trabalhou em uma escola ganhando R$20,00 a hora. O usuário deverá informar o nº de horas trabalhadas para que o cálculo seja realizado. 3. Faça um algoritmo que: • leia 4 números; • calcule o quadrado de cada número; • imprima os valores lidos e seus respectivos quadrados. 4. Faça um algoritmo que calcule 10% de lucro no preço de um produto. O usuário deverá informar o preço da compra e o programa informará o preço da venda, na qual foi acrescido o lucro. 5. Juca paga R$0,40 por kWh consumido de luz. Faça um algoritmo que o usuário informe a quantidade de kWh consumido e o programa imprima o valor do consumo. Lógica de Programação senac minas 21Estrutura de Condição e Repetição Estrutura Condicional Durante a construção de um Algoritmo podemos nos deparar com situações que para realizarmos determinadas ações dependeremos de certas condições. )) ExEmplo: Para efetuarmos a divisão entre 2 números, dependeremos do denominador ser diferente de 0. Para elaborarmos uma condição, devemos usar o comando condicional “se”. O comando “se” foi dividido em 3 alternativas: Alternativa Simples, Alternativa Composta e se Aninhado. Alternativa Simples Com o comando condicional, a ação a ser executada dependerá do resultado da condição imposta, que poderá ser verdadeiro ou falso. No caso da Alternativa Simples, se o resultado da condição for verdadeiro todos os comandos após a palavra então serão executados e se o resultado da condição for falso não será executado nenhum comando específico. O comando “se” tem uma estrutura que se inicia pelo nome do comando “se” e finaliza com o nome “fim se” seguido de ; (ponto e vírgula). Após fim se; os comandos subsequentes serão executados. Lógica de Programação senac minas22 Sintaxe: se condição então comando1; comando2; ... fim se. não usar ; (ponto e vírgula) no final da condição Importante Condição é qualquer expressão, cujo resultado seja falso ou verdadeiro. Em toda condição teremos operadores relacionais e/ou operadores lógicos com duas ou mais condições. )) ExEmplo: início {Divisão entre dois números} real: NUM, DEN, DIV; leia(NUM, DEN); se DEN<>0 então DIV ← NUM/DEN; fim se; Imprima (“Divisão = “, DIV); fim. Lógica de Programação senac minas 23 Alternativa Composta No caso da Alternativa Composta, se o resultado da condição for verdadeiro todos os comandos após a palavra então serão executados e se o resultado da condição for falso todos os comandos após a palavra senão serão executados. Sintaxe: se condição então comando1; comando2; senão comando3; comando4; fim se. Os comandos 1 e 2 serão executados quando a condição for verdadeira e os comandos 3 e 4, quando a condição for falsa. )) ExEmplo: início {Verifica se o número é positivo ou negativo} real: NUM; leia(NUM); se NUM>=0 então imprima (“Número Positivo”) senão imprima (“Número Negativo”) fim se; Imprima (“Divisão = “, DIV); fim. Lógica de Programação senac minas24 SE Aninhado No “se aninhado” utilizaremos uma nova estrutura condicional, ou seja, outro comando se após a palavra então ou após a palavra senão. )) ExEmplo: início {Verifica se o aluno foi Aprovado, Reprovado ou está de Recuperação} real: NOTAFINAL; leia(NOTAFINAL); se NOTAFINAL<=40 então imprima (“Aluno Reprovado”); senão se (NOTAFINAL>40) e (NOTAFINAL <60) então imprima (“Aluno de Recuperação”); senão se NOTAFINAL > 60 então imprima(“Aluno Aprovado”); fim se; fim se; fim se; fim. Lógica de Programação senac minas 25 )" atividadE 3: comando sE 1. Faça um algoritmo que leia algumas informações sobre uma pessoa: • Código do sexo (1=Feminino e 2=Masculino) • Nome • Idade • Código do estado civil (1=Solteiro, 2=Casado, 3=Viúvo, 4=Divorciado e 5=Outros) Imprima o nome, idade, sexo e estado civil. 2. Calcule o valor que um funcionário paga de imposto, através da digitação de algumas informações: • Código do funcionário • Nome • Salário As condições para cálculo do imposto são: • Isento para salário inferior a R$500,00 • Taxa de 5% para salário entre R$500,00 e R$1.000,00 • Taxa de 10% para salário acima de R$1.000,00 3. Faça um algoritmo que leia 3 números e calcule a soma apenas dos números ímpares. Lógica de Programação senac minas26 Estruturas de Repetição Comando ENQUANTO...FAÇA Muitas vezes, precisamos que um comando ou uma sequência de comandos sejam executados mais de uma vez. Para isso, precisaremos utilizar um comando do Algoritmo que proporcione tal repetição de comandos. Esse comando é chamado “enquanto”. Sintaxe: enquanto condição verdadeira faça comando1; comando2; comando3; . . fim enquanto; Para que esta repetição seja executada ou não, adotaremos o chamado FLAG. O FLAG é uma condição que determina se a repetição irá acontecer ou não. Para que a repetição aconteça, a condição deve ser verdadeira, caso contrário, o próximo comando, após o fim enquanto, será executado. Observação Ao determinarmos a condição do comando “enquanto” devemos ter muito cuidado para que a condição não fique infinita. Lógica de Programação senac minas 27 )) ExEmplo: início {Calcular o salário-família do funcionário} Caracter: NOME; inteiro:NUMDEP; real: SALARIO, CALCULO; leia(NOME); leia(SALARIO); leia(NUMDEP); enquanto SALARIO < > 0 faça CALCULO ← NUMDEP*SALARIO imprima (“O funcionário “ NOME “terá um benefício de “ CALCULO); leia (NOME , SALÁRIO, NUMDEP); fim enquanto; fim. Comando PARA...DE...ATÉ...PASSO...FAÇA Conheça agora, outro comando de repetição chamado “Para”. Esse comando é controlado por uma variável numérica que determina quantas vezes haverá repetição. Sintaxe: para VAR1 de VALINI até VALFIM passo VALINC faça comando1; comando2; . fim para; Lógica de Programação senac minas28 VAR1 é a variável numérica de controle; VALINI é o valor do limite inferior; VALFIM é o valor do limite superior e VALINC é o valor do incremento ou decremento da variável de controle, que pode ser omitido quando for igual a 1 (um). A variável VAR1 é inicializada com o valor de VALINI e os comandos serão executados até que o valor VAR1, que sofrerá o incremento ou decremento VALINC, ultrapasse VALFIM, isso quando o programa abandonar a estrutura de repetição, indo para o próximo comando após o fim para. Veja abaixo o exemplo do Algoritmo que imprime os números pares de 0 a 10, usando o comando ENQUANTO e o mesmo Algoritmo usando o comando PARA. Comando ENQUANTO NUM * 0; enquanto NUM <= 10 faça imprima (NUM); NUM ← NUM + 2; fim enquanto; Comando FAÇA para NUM de 0 até 10 passo 2 faça imprima (NUM); fim para; Para interromper a estrutura de repetição antes do seu término, utilizaremos o comando abandone. Quando esse comando for executado, o computador abandonará os comandos da estrutura de repetição e irá para o primeiro comando após o fim da estrutura de repetição usada. Lógica de Programação senac minas 29 Veja o exemplo do comando abandone: leia (VALOR); enquanto VALOR < > 0 faça se VALOR < 0 então abandone; fim se; imprima (VALOR); fim enquanto; imprima (“O programa prossegue a partir desta linha”); Comando REPITA...ATÉ Na estrutura de repetição “repita”, a condição para repetição dos comandos é testada no final da estrutura, ao contrário do comando “enquanto” em que a condição é testada no início. Sendo assim, as instruções da estrutura de repetição “repita” são executadas pelo menos uma vez antes do primeiro teste da condição. Sintaxe: repita Comando1; Comando2; . . até condição )) ExEmplo: inicio NUM: inteiro; repita imprima NUM; NUM←NUM +1; até NUM > 10 fim. Lógica de Programação senac minas30 )" atividadE 4: Estruturas dE rEpEtição 1. Faça um algoritmo que leia 200 números e calcule a soma apenas dos números ímpares. 2. Faça um algoritmo que calcule a média dos números pares entre 150 e 250. 3. Faça um algoritmo que leia 50 números, eleve cada número ao cubo e imprima o resultado de cada um. 4. Faça um algoritmo que imprima o quadrado dos números de 1 a 100. 5. Na última pesquisa feitano ano de 2010 sobre a população brasileira, foram pesquisados 1000 habitantes de uma cidadezinha do interior de Minas. Durante a pesquisa foram coletados os seguintes dados: idade, sexo (F/M) e salário. Faça um algoritmo que informe: • a média do salário dos pesquisados • quantidade de mulheres com salário acima R$800,00 • quantidade de homens 6. Faça um algoritmo que leia a Nota Final de 60 alunos de uma turma e imprima a maior nota. 7. Faça um algoritmo que leia a Nota Final de 40 alunos de uma turma e imprima a menor nota. Lógica de Programação senac minas 31 Vetor e Matriz Vetores As variáveis estudadas até hoje são capazes de armazenar apenas 1 dado por vez. Mas, poderá existir situações em que precisaremos armazenar mais de um dado em cada variável. Para armazenarmos mais de um dado em uma variável devemos declará-la como sendo do tipo vetor. O que é um vetor? É um tipo de variável capaz de armazenar mais de uma dado. É representado na memória desta forma: 1 2 3 4 5 6 7 8 9 10 70 90,5 Sintaxe de Declaração tipo v = vetor[LIMIN:LIMSU] < tipo básico >; v : NOME; v – corresponde ao tipo VETOR. LIMIN e LIMSU – correspondem ao tamanho do vetor, valor inicial e valor final que deverão ser números inteiros. <Tipo básico> - corresponde ao tipo de dado que será armazenado no vetor. Nome – corresponde ao nome do vetor. Deve-se seguir as mesmas regras para nomes de variáveis. Lógica de Programação senac minas32 Declaração do Vetor tipo v = vetor[1:10] real; v : NOTA; Atribuição de valor ao conteúdo do Vetor Para atribuir as notas 70 e 90,5 nos índices 1 e 2 do vetor NOTA, veja o exemplo abaixo: NOTA[1] ← 70; NOTA[2] ← 90,5; Para inicializarmos todos os índices do vetor com um mesmo valor, podemos usar o nome do vetor dissociado do índice, conforme exemplo abaixo: NOTA ← 0 equivale a NOTA[1] ← 0; NOTA[2] ← 0; . . . NOTA[10] ← 0; Para inicializar um vetor com valores diferentes, utilizamos um comando único. NOTA ← (70, 90,5, 100, 60, . . ., 78) Lógica de Programação senac minas 33 equivale a: NOTA[1] ← 70; NOTA[2] ← 90,5; NOTA[3] ← 100; NOTA[4] ← 60; . . . NOTA[10] ← 78; Utilizando o comando LEIA para preencher um Vetor O preenchimento do vetor pode ser individual ou de uma única vez, através do comando leia. Sempre que o nome de um vetor estiver dissociado do índice, significa que todos os índices serão lidos de uma só vez. Veja o exemplo abaixo: Leia (NOTA) equivale a: leia (NOTA[1]); leia (NOTA[2]); . . . leia (NOTA[10]); Utilizando o comando IMPRIMA para imprimir um Vetor A impressão do vetor pode ser individual ou de uma única vez, através do comando imprima. Sempre que o nome de um vetor estiver dissociado do índice, significa que todos os índices serão impressos de uma só vez. Lógica de Programação senac minas34 Veja o exemplo abaixo: imprima (NOTA) equivale a: imprima (NOTA[1]); imprima (NOTA[2]); . . . imprima (NOTA[10]); Exemplo de um Algoritmo com Vetor início tipo v = vetor[1:10] real; v : NOTA; real: SOMA; inteiro: I; SOMA ← 0; para I de 1 até 10 faça leia ( NOTA[I]); SOMA ← SOMA + NOTA[I]; fim para; para I de 1 até 10 faça imprima (NOTA[I]); fim para; fim. Lógica de Programação senac minas 35 Matrizes A matriz é semelhante a um vetor, porém ela é construída por linhas e colunas, parecendo- se com uma tabela onde cada elemento é localizado pelo encontro da linha com a coluna. Sintaxe de Declaração Um dos tipos existentes: - Real - Inteiro - Caracter - Lógico tipo m= matriz [ LMI1:LMS1,LMS2:LMI2 ] <Tipo - básico>; m: NOME; v – corresponde ao tipo MATRIZ. LMI1 - corresponde ao Limite inferior 1. LMS1 - corresponde ao Limite superior 1. LMI2 - corresponde ao Limite inferior 2. LMS2 - corresponde ao Limite superior 2. <Tipo básico> - corresponde ao tipo de dado que será armazenado na matriz. NOME – corresponde ao nome da matriz. Deve-se seguir as mesmas regras para nomes de variáveis. O número de elementos de uma matriz é dado por: NE = (LMS1 - LMI1 + 1) * (LMI2 - MS2 + 1) Lógica de Programação senac minas36 Declaração da Matriz tipo m = matriz [1:4,1:4] real; m:NOTA; Número de Linhas Número de Colunas Atribuição de valor ao conteúdo da Matriz Numa matriz 4 x 4, podemos atribuir os valores 100 e 200 nas posições 1,1 e 1,2 da matriz NOTA. Veja o exemplo abaixo: NOTA[1,1] ← 100; NOTA[1,2] ← 200; 1 2 3 4 1 100 200 2 3 4 - Nº Elementos: (4 - 1 + 1) * (4 - 1 + 1) = 16 Lógica de Programação senac minas 37 Para inicializarmos todas as posições da matriz com um mesmo valor, podemos usar o nome da matriz dissociado do índice, conforme exemplo abaixo: NOTA ← 0 equivale a: NOTA[1,1] ← 0; NOTA[1,2] ← 0; . . . NOTA[4,4] ← 0; Utilizando o comando LEIA para preencher uma Matriz O preenchimento da matriz pode ser individual ou de uma única vez, através do comando leia. Sempre que o nome de uma matriz estiver dissociado do índice, significa que todos os índices serão lidos de uma só vez. Veja o exemplo abaixo: Leia (NOTA) equivale a: leia (NOTA[1,1]); . . . leia (NOTA[4,4]); Lógica de Programação senac minas38 Utilizando o comando IMPRIMA para imprimir uma Matriz A impressão do vetor pode ser individual ou de uma única vez, através do comando imprima. Sempre que o nome de um vetor estiver dissociado do índice, significa que todos os índices serão impressos de uma só vez. Veja o exemplo abaixo: imprima (NOTA) equivale a: imprima (NOTA[1,1]); . . . imprima (NOTA[4,4]); Lógica de Programação senac minas 39 Exemplo de um Algoritmo com Matriz início tipo m = matriz[1:4,1:4] real; m : NOTA; real : SOMA; inteiro: I, J; SOMA ← 0; para I de 1 até 4 faça para J de 1 até 4 faça leia ( NOTA[I,J]); SOMA ← SOMA + NOTA[I,J]; fim para; fim para; para I de 1 até 4 faça para J de 1 até 4 faça imprima ( NOTA[I,J]); fim para; fim para; fim. Lógica de Programação senac minas40 )" atividadE 5: vEtor E matriz ExErcício dE vEtor 1. De acordo com a tabela abaixo, calcule e imprima a soma e a média dos valores contidos em cada posição do vetor. 90 70 60 40 80 2. Faça um algoritmo que crie dois vetores de 30 posições. No primeiro vetor, preencher as 30 posições com o número zero. No segundo vetor preencher, cada posição do vetor, com o resultado do quadrado do seu índice. )) ExEmplo: Posição 1 terá 1, posição 2 terá 4, posição 3 terá 9 e assim por diante. imprima os elementos do 1º e 2º vetores. 3. No curso de Pós-graduação de uma determinada faculdade, foram aplicadas 2 avaliações para 30 alunos. Crie um vetor para armazenar as notas da 1ª avaliação e outro vetor para armazenar as notas da 2ª avaliação. Calcule e imprima a nota final (soma das 2 avaliações) de cada aluno e a média da turma. 4. Faça um algoritmo que preencha um vetor com números ímpares de 100 a 200 e os imprima invertidamente. )) ExEmplo: Preencha: 101, 103, 105, .... e Imprima: 199, 197, 195 ... Lógica de Programação senac minas 41 ExErcício dE matriz 1. Calcular A + B e A - B, sabendo que: A= 3 -2 5 11 B= 5 7 -4 6 2. Calcular A + B e A - B, sabendo que: A= 1 0 7 6 4 5 B= 8 -2 4 0 -6 -4 3. Faça um algoritmo que leia uma matriz 4 x 4 e imprima o maior valor encontrado nesta matriz, a média dos valores e a diagonal principal.4. Faça um algoritmo que leia 30 números e preencha uma matriz. Imprima a soma dos elementos que compõem a diagonal secundária. Lógica de Programação senac minas42 5. Sabe-se que existe uma matriz de 12 colunas (1 a 12) representadas por meses e de 4 linhas (2006 a 2010) representadas por anos. Essa matriz armazena o valor do faturamento anual dos últimos 4 anos de uma Empresa de Cosméticos. Faça um algoritmo que leia essa matriz e que: a) informe o valor do faturamento de cada ano; b) imprima o menor faturamento anual; c) imprima o faturamento médio dos mês de dezembro de cada ano. 6. Faça um algoritmo que leia duas matrizes 5 x 10 e que gere a terceira matriz, contendo em cada elemento a média dos elementos das outras duas matrizes lidas. Imprima a média dos elementos da terceira matriz. Lógica de Programação senac minas 43 Procedimentos e Funções no Portugol Procedimento e função é caracterizado como sendo uma técnica de modularização, ou seja, criar programas em módulos. Essa técnica é muito utilizada quando criamos programas grandes, pois podemos dividir esse programas em módulo, ou seja, subprogramas independentes um do outro. Como até o momento utilizamos apenas um bloco no Algoritmo, delimitado por início e fim, aprenderemos programas utilizando a técnica de modularização, através de um Procedimento e uma Função. Tanto o procedimento quanto a função possuem a mesma estrutura de um programa. O módulo principal recebe o nome de Programa Principal e os demais módulos de subprogramas ou bloco interno. Quando executamos um programa, as variáveis declaradas dentro do programa principal são criadas na memória e permanecem ativas até o término da execução do programa, já as variáveis declaradas dentro de um subprograma, ficam ativas quando o subprograma começa a ser executado e permanecem ativas até o término da execução do subprograma. As variáveis de um subprograma só são reconhecidas dentro dele. Variáveis Locais e Globais As variáveis que são declaradas dentro de um subprograma são chamadas de variáveis locais. As variáveis locais só são criadas na memória, quando necessário, ou seja, apenas quando o procedimento ou a função são executados. Com isto, podemos gerenciar a utilização da memória, pois as variáveis que são criadas dentro do programa principal, chamadas de variáveis globais, são reconhecidas tanto no programa principal, quanto no subprograma e ficam na memória durante toda a execução do algoritmo, sendo que as variáveis locais só ficam na memória e são reconhecidas durante a execução do subprograma. Lógica de Programação senac minas44 Procedimento O procedimento é um bloco de comandos que serão executados apenas quando forem chamados. Ao término dos comandos dentro do procedimento, o próximo comando a ser executado será após o comando que chamou o procedimento. Ao criarmos um procedimento devemos dar um nome para ele no cabeçalho. Sintaxe: procedimento <nome do procedimento> [lista de parâmetros]; início {declaração de variáveis}; comando1; comando2; . . comandoN; fim. Lembrar que, no Portugol, um bloco é composto por um conjunto de instruções delimitadas pelos comandos início e fim. Lógica de Programação senac minas 45 )) ExEmplo: procedimento CABECALHO; início inteiro: I; imprima(“SENAC - Serviço Nacional de Aprendizagem Comercial”); para I de 1 até 80 faça imprima(“-“); fim para; fim. Lista de Parâmetros: correspondem a variáveis que irão receber o conteúdo passado no ato da chamada do procedimento. Nem sempre o uso do parâmetro é necessário. Importante Um procedimento não retorna valor para o corpo do algoritmo após a sua execução. Lógica de Programação senac minas46 Passagem de Parâmetros Denominamos “Passagem de Parâmetros” quando a lista de parâmetros recebe conteúdos a serem passados no ato da chamada do procedimento ou função. A passagem de parâmetros pode ser por valor ou referência. A passagem por valor é quando uma cópia da variável original é passada ao parâmetro, e o valor original não sofre alterações. Quando a passagem é por referência, toda modificação feita na variável de parâmetro é repassada à variável utilizada na chamada. Função As funções são muito parecidas com os procedimentos. A principal diferença é que a função sempre retorna (devolve) um valor. Esse valor é retornado no lugar onde a função foi chamada. A função é muito utilizada quando tivermos a necessidade de atribuir o resultado dela a uma variável ou quando precisamos passar esse resultado para uma expressão aritmética ou até mesmo imprimi-las. Lógica de Programação senac minas 47 Sintaxe: função <nome da função> [<lista de parâmetros>] : tipo-básico; início <declaração de varáveis locais>; comando1; comando2; . . . comandoN; <nome da função> ← expressão; fim. )) ExEmplo: início função QUADRADO (NUM) : inteiro; início QUADRADO ← NUM ** 2; fim; inteiro : I,N; para i de 1 até 10 faça leia (N) imprima ( “ O quadrado de “, N, “é : “,QUADRADO (N)); fim para; fim. Lógica de Programação senac minas48 )" atividadE 6: procEdimEnto E função 1. Faça uma função que some 3 valores e retorne o resultado. 2. Faça uma função que calcule a média de 4 valores e retorne o resultado. 3. Faça um procedimento que some 3 valores e imprima o resultado. 4. Faça um procedimento que calcule a média de 4 valores e imprima o resultado. 5. Faça uma função que calcule a potência de valores que serão passados como parâmetro. Passar como parâmetro: o expoente e a base. 6. Faça uma função que retorne o valor absoluto de um número (ausência do sinal -/+), ou seja, se o número passado como parâmetro for negativo, retornará o número positivo, mas sem o sinal do +. Lógica de Programação senac minas 49 )" ExErcícios propostos 1. Foram abertas as inscrições para o concurso da Prefeitura de Belo Horizonte. Todos os candidatos deverão, no ato da inscrição, informar os dados pessoais. De acordo com as regras do Portugol, crie 5 variáveis que represente alguns dados pessoais. 2. O setor de crediário de uma loja de calçados cadastra os seus clientes antes de imprimir o carnê. Durante o cadastro a atendente solicita um comprovante de renda e os seguintes documentos: RG, CPF, Título de eleitor e Carteira de Trabalho. Crie uma variável precedida do seu tipo para representar o comprovante de renda e outras também precedidas dos seus tipos para representar cada documento solicitado. 3. De acordo com as regras do Portugol, identifique e justifique os nomes de identificadores inválidos. a) SALARIO b) 13ºSALARIO c) DIA/MÊS/ANO d) VAGA2 e) NOTA1 f) aluno g) DATA-ADMISSAO h) ESTADO CIVIL 4. Crie duas variáveis quaisquer para cada tipo: Inteiro, Real, Caracter e Lógico. 5. Num algoritmo foram criadas as seguintes variáveis: Inteiro: CODIGO, NUMERO; real: SALARIO, TOTAL; caracter: RUA, CIDADE; lógico: POSITIVO, MARCADO; Lógica de Programação senac minas50 Verifique se estas variáveis declaradas poderão receber os seguintes valores: a) CODIGO←SALARIO; b) SALARIO←NUMERO; c) NUMERO←SALARIO; d) RUA←MARCADO; e) CIDADE←”BETIM”; f) RUA←”MARCADO”; g) POSITIVO←FALSO; h) MARCADO←”FALSO”; 6. Conforme exemplo abaixo, quais são os valores armazenados nas variáveis RESULTADO do tipo inteiro, W do tipo lógico e TESTE do tipo caracter: a) RESULTADO←(7 mod 2) * 5 – 2 ** 2; b) X←4; Y←2; Z←X+Y; W←(X<Y) ou (Z<Y**2) e (Y>5) ou (Z>X); c) A←”Cabelo” B←” ” C←”Castanho” TESTE←A+B+C 7. Observe as expressões abaixo e informe o resultado de cada uma: X←100; Y←-5; Z←falso; W←verdadeiro;Lógica de Programação senac minas 51 a) X>Y; b) X+Y>110; c) não W; d) (Y>X) e não Z; e) (X>Y) ou (X>10); f) (X=Y) ou (Z ou W) e (X=100); g) não (Z e W); h) (Y<X) e (X+Y<100) e não W; i) X + Y * 2 < 4 ** 2 e Z ou W e (Y > -3) 8. Observe abaixo as operações mistas e escreva, para cada item, a precedência das operações: a) 100 – X ** Y * (2 + A); b) X + Y e X / 4; c) não W ou X > Y e Z; d) (Y>10) e não Z; e) X + 4 * 2 ou X > 10 ** 2; f) X * 2 > 4 e X mod 2 = 0; g) não Z e W; h) Y<X e X+Y<100 e não Z; 9. Na matemática escrevemos equações algébricas conforme exemplo abaixo. Reescreva estas equações em Portugol. a) 1 + 1x y b) x + y * 10 2 c) 2x2 + 3x -2 d) y + x +2 x + y e) 1 + 1 + 32 x y f) x + 1 + y 2 Lógica de Programação senac minas52 10. Observe o algoritmo abaixo e informe qual o valor da variável A: inteiro: X, Y, Z; lógico: A, B; X←1; Y←2; Z←3; A←não B; B←(X>Y) e (Z>6); Importante Existe um erro no algoritmo acima? Caso exista, faça as correções e informe novamente o valor contido na variável A. 11. Quais resultados serão impressos no algoritmo abaixo? inicio Inteiro: NUM, X, Y, Z, W; NUM←3264; W←NUM mod 10; Z←(NUM div 10) mod 10; Y←(NUM div 100) mod 10; X←(NUM div 1000) mod 10; Imprima (W,Z,Y,X); fim. Observe o valor da variável NUM e o valor de cada variável impressa na tela. Descreva em que situação usaria este algoritmo? Lógica de Programação senac minas 53 12. Faça um algoritmo que leia 5 números, eleve esses números ao cubo e imprima o resultado desses números. 13. Observe o algoritmo abaixo e descubra o que ele faz. inicio inteiro: A, B; leia (A, B); B ← A + B; A ← B - A; B ← B - A; imprima (A, B); fim. 14. O algoritmo abaixo é equivalente ao algoritmo do exercício anterior? inicio inteiro: X, A, B; leia (A, B); X ← A; A ← B; B ← X; imprima (A, B); fim. Lógica de Programação senac minas54 15. Qual o valor de NUM após a execução do algoritmo? lógico: VALOR1, VALOR2, VALOR3; real: Z, W; inteiro: NUM; VALOR1 ← falso; VALOR2 ← verdadeiro; VALOR3 ← falso; Z ← 11,5; W ← 3,2; Z ← Z + 1; se VALOR3 ou ((Z + W > 5) ou (não VALOR1 e VALOR2)) então NUM ← 0; senão NUM ← 1; fim se; 16. Descubra o erro do algoritmo abaixo? início inteiro: NUM, RESULTADO, PAR; leia (NUM); PAR ← NUM mod 2; se PAR = 0 então RESULTADO * verdadeiro; senão RESULTADO * falso; fim se; fim. Lógica de Programação senac minas 55 17. Faça um algoritmo que leia os três lados de um triângulo e se os três lados forem iguais, imprima Triângulo Equilátero, se dois lados forem iguais, imprima Triângulo Isósceles e se os três lados forem diferentes, imprima Triângulo Escaleno. 18. Faça um algoritmo que leia três notas e as imprima em ordem crescente. 19. Faça um algoritmo que leia o nome de dois irmãos e suas respectivas datas de nascimento (dia, mês e ano). Imprima o nome do irmão mais novo. 20. Faça um algoritmo para as Olimpíadas realizadas em 2010, que cadastre as seguintes informações: o nome do atleta e o tempo gasto em cada prova; a nota dos jurados nas modalidades Ginástica Artística e Ginástica Rítmica, sendo que a nota dos jurados na modalidade Ginástica Rítmica dependerá dos seguintes critérios: • os atletas que atingirem o tempo superior ou igual a 7 na Ginástica Rítmica, receberão nota igual a nota da Ginástica Artística; • os atletas que atingirem o tempo inferior a 7 na Ginástica Rítmica, receberão nota equivalente à metade da nota da Ginástica Artística. Imprimir o Nome, a nota e o tempo de cada atleta. Lógica de Programação senac minas56 21. Observe o algoritmo abaixo e responda quais comandos serão executados: início lógico: A, B, C; leia (A, B, C); se A então COMANDO1; senão se B então se C então COMANDO2; senão COMANDO3; COMANDO4; fim se; fim se; fim se; COMANDO5; fim. a) Se A = verdadeiro; B = verdadeiro; C = falso, quais os comandos que serão executados? b) Se A= falso; B = verdadeiro; C = falso, quais os comandos que serão executados? c) Se A = falso; B = verdadeiro; C = verdadeiro, quais os comandos que serão executados? d) Quais os valores de A, B, C, para que somente o COMANDO5 seja executado? 22. Criar um algoritmo que leia o Nome do aluno e a nota final do Trabalho de Matemática. Se a nota do trabalho for igual a Zero imprima o nome do aluno . Lógica de Programação senac minas 57 23. Descubra o valor que será impresso no algoritmo abaixo: início lógico: X; inteiro: Y; Y ← 0; X ← falso; enquanto Y <> 6 faça X ← não X; Y ← Y + 1; se X então imprima (Y); senão imprima (-Y); fim se; fim enquanto; fim. 24. Multiplicar os números inteiros e positivos de 1 a N, incrementando de 1 em 1 e o N será um valor lido. 25. Faça um algoritmo que imprima os números pares de 200 a 400. 26. Faça um algoritmo que imprima os múltiplos de 2 entre os números de 1 a 100. 27. Faça um algoritmo que calcule o somatório abaixo: S = 1 + 3 + 5 + 7 +.....+ 99 1 2 3 4 50 Lógica de Programação senac minas58 28. Faça um algoritmo que calcule o valor de P: P = 3 * 5 * 7 * 9 * 11 *.....* 101 2 4 6 8 10 100 29. Sendo, H = 1 + 1 + 1 + 1 +.....+ 1 2 3 4 N faça um algoritmo que calcule o valor H. O número N é lido. 30. Faça um algoritmo que calcule o valor de S: S = 1 _ 2 + 3 _ 4 + 5 _ 6 +....._ 10 1 4 9 16 25 36 100 31. O SENAC tem cadastrados os seguintes dados dos seus funcionários: Matrícula Nome Endereço Nº da Carteira de Trabalho CPF RG Cargo Setor Salário Bruto Data de Nascimento Data de Admissão Número de dependentes Horas trabalhadas no mês Lógica de Programação senac minas 59 Faça um algoritmo que calcule: a) Total de funcionários, média salarial e o gasto salarial com a folha de pagamento. b) Maior e o menor salário, e imprimir a Matrícula do funcionário com o maior salário e o com o menor salário. c) Salário Bruto, Salário Líquido e Total de Descontos de cada funcionário, conforme dados abaixo: se jornada de trabalho de cada funcionário ultrapassar 160 horas mensais, o mesmo terá direito a hora extra. valor da Hora Extra = Acréscimo do valor da hora normal + 50%. Salário-Família = Acréscimo de R$15,00 por dependente. INSS = desconto de 11% do salário bruto. d) O SENAC tem os seguintes setores: Tesouraria, CPD e Almoxarifado. Calcular o número de Funcionários em cada um desses setores. e) Imprimir a Matrícula, Nome, Setor, Função, Salário Líquido e a data de admissão de cada funcionário. 32. No Sistema de Ensino de um determinado país, os alunos foram divididos por idade nos seguintes níveis: Educação Infantil – 01 a 05 anos Ensino Fundamental – 06 a 14 Ensino Médio – 15 a 17 Graduação – acima de 18 Lógica de Programação senac minas60 Faça um algoritmo que: a) leia o nome e a idade de cada aluno; b) imprima o nome lido, a idade e o nível de escolaridade. 33. Uma pastelaria localizada no centro de São Paulo, vende apenas dois sabores de pastéis (1- Carne e 2- Queijo). Faça um Algoritmo para ler um conjunto de 50 fichas, contendo, cada uma, o código do sabor, a quantidade comprada e o preço unitário (Carne-R$1,50 e Queijo-R$1,30). Calcule e imprima: a média da quantidade vendida de pastel de carne; a média da quantidade vendida de pastel de queijo; o preço total vendido de pastéis. 34. No curso de Informática de uma determinadaescola o aluno deverá atender às seguintes regras: durante o curso o aluno deverá fazer quatro provas; a nota final será obtida pela média das notas das quatro provas; serão aprovados os alunos que obtiverem a nota final superior ou igual a 70 e 60% de frequência. Faça um algoritmo que: a) leia a matrícula, o nome, a nota de cada prova e a porcentagem de frequência; b) calcule e imprima: a nota final e o resultado de cada aluno; a maior e a menor nota final; a média das notas finais; o total de alunos reprovados; a porcentagem de alunos reprovados em relação ao total geral de alunos. Lógica de Programação senac minas 61 35. Uma Academia pesa 100 clientes durante o teste de Avaliação Física. Cada cliente possui uma ficha com o seu código e peso. Faça um algoritmo que: a) imprima o código e o peso do cliente mais gordo e do mais magro; b) modifique o algoritmo para que ele imprima os códigos e respectivos pesos dos dois clientes mais gordos e dos dois clientes mais magros. 36. Foi realizado um concurso público do Tribunal de Justiça na cidade de Belo Horizonte. Para cada cargo foram coletadas as seguintes informações: código do cargo oferecido número de vagas por cargo número de candidatos do sexo masculino número de candidatos do sexo feminino Para finalizar o cadastro o último código deverá ser igual a zero. Faça um algoritmo que: calcule e imprima o código do cargo, o número de candidatos inscritos no concurso; porcentagem de candidatos do sexo masculino; porcentagem de candidatos do sexo feminino. Lógica de Programação senac minas62 37. Em uma loja de calçados, os funcionários remarcam os preços das sandálias que chegam para a comercialização. Faça um algoritmo que facilite essa remarcação. Sandálias com preço de compra abaixo ou igual a R$ 30,00 serão remarcadas com 60% de lucro, as com preço de compra acima de R$30,00 e abaixo ou igual a R$60,00 serão remarcadas com 50% de lucro e as sandálias com preço de compra acima de R$60,00 serão remarcadas com 40% de lucro. Este algoritmo deverá: ler o preço de cada sandália, calcular o preço de venda de acordo com a porcentagem do lucro acima e imprimir quantas sandálias tiveram o lucro de 60%, 50% e 40%. imprimir também, o valor total de compra e venda de todas as sandálias, assim como o lucro total da loja. 38. Numa determinada Escola de Inglês, para os alunos serem aprovados, eles deverão ter 75% de frequência e aproveitamento acima de 70 pontos, caso contrário, serão reprovados. Faça um algoritmo que: leia a matrícula, o nome, a nota final do aluno e a sua frequência (“F” indica que é frequente e “I” indica que é infrequente) referente a 10 aulas. conte a quantidade de “F” e “I” e calcule a porcentagem de falta em relação às 10 aulas. imprima a matrícula, o nome do aluno, a nota final, a porcentagem de faltas e o resultado Aprovado ou Reprovado. Lógica de Programação senac minas 63 39. Faça um algoritmo que calcule o valor de uma conta de energia elétrica. Para realizar esse cálculo o algoritmo deverá: ler o consumo mensal em kWh, a alíquota do imposto PIS/CONFIS (ex: 0,06405%), alíquota do ICMS (ex: 30%), valor do kWh sem tributo e o COSIP(Contribuição para o Custeio da Iluminação Pública); calcular o valor do imposto PIS/CONFIS que será igual a alíquota do imposto PIS/CONFIS(%) X valor do kWh sem tributo; calcular o valor do imposto ICMS que será igual a alíquota do imposto ICMS(%) X valor do kWh sem tributo; calcular o valor do KWh com tributo que será igual ao valor do kWh sem tributo/1 - (valor do imposto PIS/ CONFIS+ valor do imposto ICMS); calcular o valor a pagar da conta de energia elétrica que será igual ao valor do KWh com tributo X Consumo mensal em kWh + COSIP. 40. Para calcular o imposto de renda de um empregado, o algoritmo deverá: a) ler o CPF, o nome, número de dependentes, a remuneração do mês e o valor da Pensão Alimentícia, quando houver; b) calcular o valor do INSS, sendo que, será necessário consultar a alíquota na tabela abaixo: Remuneração Alíquota até R$ 1.040,22 08% de R$ 1.040,23 a R$ 1.733,70 09% de R$ 1.733,71 até R$ 3.467,40 11% Lógica de Programação senac minas64 INSS = Remuneração X Alíquota c) calcular a dedução dos dependentes que será o número de dependentes X R$150,69. d) obter a Base de Cálculo do Imposto de Renda: Base de Cálculo = Remuneração – dedução dos dependentes – Pensão Alimentícia. e) calcular o IRRF, sendo que, será necessário consultar a alíquota na tabela abaixo: Base de Cálculo Alíquota Parcela a deduzir até R$ 1.499,15 - - de R$ 1.499,15 a R$ 2.246,75 7,5% R$112,43 de R$ 2.246,76 até R$ 2.995,70 15% R$280,94 de R$ 2.995,71 a R$ 3.743,19 22,5% R$505,62 Acima de R$ 3.743,19 27,5% R$692,78 IRRF = Base de cálculo * Alíquota – Parcela a deduzir f) o último registro, que não será considerado, terá o número de CPF igual a zero; g) imprimir o CPF, o nome e o IRRF de cada funcionário. Lógica de Programação senac minas 65 41. Para calcular uma conta de telefone mensal, será necessário cadastrar os seguintes dados: número do telefone; plano (1 se for de minutos locais e 2 se for minutos longa distância); número de impulsos das chamadas locais; número de impulsos das chamadas de longa distância; número em Gb da taxa de transferência (Serviço adicional no acesso à internet) . Considerações a) Se o Plano for “Minutos locais” o valor do impulso será R$0,12. b) Se o Plano for “Minutos longa distância” o valor do impulso será R$0,48. c) Se a taxa de transferência do uso da internet ultrapassar 4G será cobrada uma taxa adicional de R$10,75. Calcule o valor da conta. Imprima o número do telefone e o valor de sua conta mensal. 42. Uma empresa classificou o salário dos funcionários por nível, sendo que os funcionários com salário de R$510,00 a R$800,00 teriam nível 1, com salário de R$800,01 a R$1.500,00 teriam nível 2, com salário de R$1.500,01 a R$3.000,00 teriam nível 3 e acima de R$3.000,01 teriam nível 4. Faça um algoritmo que: a) leia a matrícula, o nome e nível do funcionário; b) imprima o Nome, o Salário e o nível; Lógica de Programação senac minas66 43. Faça um algoritmo que converta graus Fahrenheit para Centígrados. A fórmula é Centígrados = 5 / 9 (Fahrenheit - 32). Informe o Fahrenheit de 50 a 150, incrementando de 1 em 1 e imprima o Graus Fahrenheit e Centígrados correspondentes. 44. Leonardo de Pisa, conhecido como, Fibonacci criou uma sequência de números chamada “Sequência de Fibonacci” para descrever o crescimento de uma população de coelhos. Essa sequência começa de 0 e 1, obtém-se o próximo número somando-se os dois anteriores. Exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..., etc. Escreva um algoritmo que gere a Sequênca de Fibonacci até o 55º termo. 45. Em uma pilha de pratos, o último prato a ser colocado na pilha, será o primeiro a ser retirado. Seguindo esse raciocínio, faça um algoritmo que leia três valores numéricos e os imprima na ordem inversa. Exemplo: ler 1,2,3 e imprimir 3,2,1. 46. Um criador controla a sua reprodução anual de coelhos, através de um arquivo que lê mensalmente o número de coelhos nascidos e calcula a média de reprodução anual. Faça um algoritmo que faça esse cálculo e imprimia a média de reprodução anual e o mês que nasceu o maior número de coelhos. 47. O clube Poliesportivo de uma determinada cidade, está selecionando talentos para a formação de um novo time de jogadores de vôlei. Os requisitos são faixa etária de 19 a 21 anos e altura mínima de 1,80 para o sexo feminino e, 1,95 para o sexomasculino. Faça um algoritmo que leia o nome, idade, sexo e altura do candidato. Calcule e imprima o número de candidatos inscritos, o número de candidatos do sexo feminino que foram aprovados, o número de candidatos do sexo masculino que foram aprovados e o número de candidatos eliminados dos sexos feminino e masculino. Lógica de Programação senac minas 67 48. A prova de 100m rasos é uma modalidade olímpica de Atletismo. Nos Jogos Olímpicos de 96, foi cronometrado o tempo gasto de cada atleta durante a prova. Faça um algoritmo que: leia o número de inscrição, o nome e o tempo de cada atleta; imprima o número de atletas que participaram da corrida, o tempo gasto de cada um e o nome do atleta que fez o menor tempo. 49. Na matemática, o resultado do quadrado de um número x (inteiro positivo) corresponde a soma dos x primeiros números ímpares. Exemplos: a) o quadrado de 2 é => 1 + 3 = 4 b) o quadrado de 4 é => 1 + 3 + 5 + 7 = 16 Faça um algoritmo que leia um número inteiro positivo e imprima o número lido, os x primeiros números e o resultado do seu quadrado conforme exemplo acima. 50. Faça um algoritmo que preencha um vetor de 10 posições com números pares de 1 a 20 e imprima o conteúdo desse vetor. 51. Faça um algoritmo que preencha dois vetores de 5 posições com números e gere um terceiro vetor de 5 posições com o resultado da multiplicação dos elementos dos dois vetores lidos. Lógica de Programação senac minas68 52. Faça um algoritmo que preencha um vetor de 20 posições com o número correspondente ao índice de sua posição. Exemplo: A primeira posição do vetor receberá o seu índice 1, a segunda posição do vetor receberá o seu índice 2 e assim por diante. 53. Num vetor de 100 posições preencha-o com números de 1 a 100 respectivamente e imprima o índice dos elementos pares desse vetor. 54. Faça um algoritmo que preencha um vetor de 10 posições, com nome de estados da região Sudeste do Brasil. Imprima os índices dos elementos do vetor que tiver o valor igual a “SP”. 55. Faça um algoritmo que preencha um vetor de 40 posições com as notas finais dos alunos e imprima a maior, a menor e a média das notas. 56. No Vestibular de uma determinada Universidade de Minas Gerais, os alunos marcaram as respostas de 20 questões do gabarito de Biologia. Para facilitar a correção, faça um algoritmo que leia a resposta de todo o vetor e imprima o número de questões com os seguintes resultados “a”, “b”, “c”, “d”, “e”. Lógica de Programação senac minas 69 57. Os 1000 funcionários de uma empresa de alimentos tiveram os seus salários classificados por níveis. Crie uma matriz 10 x 2 e preencha-a com os valores abaixo: Níveis Salário 1 510,00 2 850,00 3 1.200,00 4 1.600,00 5 2.000,00 6 2.400,00 7 2.800,00 8 3.100,00 9 3.500,00 10 4.000,00 Faça um algoritmo que: a) leia a matrícula, o nome do funcionário e o nível que está na matriz criada; b) imprima a matrícula, o nome, o salário do funcionário e a quantidade de funcionários em cada nível. Lógica de Programação senac minas70 58. Crie uma tabela 4 x 12, que leia os gastos mensais das contas de Água, Luz, Telefone e Escola no ano e imprima separadamente o total gasto com a Água, a Luz, o Telefone e a Escola. As colunas representarão os meses do ano, por exemplo, Janeiro, Fevereiro... e as linhas os gastos, por exemplo, conta de água, luz, telefone e escola. Veja exemplo da tabela: Meses Gastos 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 59. Faça um algoritmo que crie uma tabela para lançamento das notas de 10 alunos referente ao 1º, 2º, 3º e 4º bimestre. Veja exemplo da tabela: Bimestre Alunos 1 2 3 4 1 2 3 4 5 6 7 8 9 10 a) Imprima a nota final de cada aluno e a média das notas de cada bimestre. Lógica de Programação senac minas 71 60. Faça um algoritmo que crie uma tabela 10 x 3 contendo informações da venda de 10 produtos referente ao material escolar de uma determinada escola. Leia o nome do produto, a quantidade e o preço unitário. Calcule o valor pago por cada produto e imprima o valor total da venda. Veja exemplo da tabela: Quantidade Preço 1 2 3 1 2 3 4 5 6 7 8 9 10 Produto Lógica de Programação senac minas72 Referências GUIMARÃES, A. M.; LAGES, N. A .C. Algoritmo e Estrutura de Dados. 1ª Edição. LTC, 1985. 216 p. SENAC.DR.MG. Fundamentos de lógica de programação/ Newton Lopes. Belo Horizonte: SENAC/MG/SEMD, 2004. 212p. II.
Compartilhar