Buscar

EXERCÍCIOS LÓGICA DE PROGRAMAÇÃO

Prévia do material em texto

1-O que é um algoritmo?
Sequencia logica finita e definida da instrução que devem ser seguidas para resolver um problema ou executar uma tarefa.
2-O que são instruções dentro de um programa?
Operação unica executada por um processador, onde pode ser qualquer representação de um elemento em um programa executavel.
3-Como é feito o processo de compilação e execução de um programa?
Compilação é o ato / processo de traduzir um programa feito em uma linguagem de alto nível para uma linguagem de máquina, para que suas instruções sejam executadas pelo processador, ou seja, cria o executável de um programa escrito em uma linguagem de alto nível.
4- Crie um algoritmo para fazer o trajeto de sua casa/trabalho até a universidade. Pense nas possibilidades de estar chovendo, de ter muito trânsito, de usar transportes alternativos, entre outras. Pode usar pseudocodigo e Fluxograma.
Variavel: Aluno
Aluno Acorda
Aluno troca de roupa
Aluno toma café
Aluno vai para o ponto de onibus 
Tem onibus?
Se sim, entra e pega o percurso
Se não, espera o onibus no ponto
Chegou no destino?
Se sim, desde do onibus e caminha para a universidade
Se nao, continua no onibus ate o destino final
5- O que são constantes e tipos de dados?
Em linguagens de programação, constantes são usadas em expressões para representar vários tipos de valores. Tipos de dados podem ser por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.
Em linguagem C, os dados podem assumir cinco tipos básicos, que são:
     - char (caractere): o valor armazenado é um caractere. Caracteres geralmente são armazenados em códigos (usualmente o código ASCII);
     - int (inteiro): é o tipo numérico padrão e o tamanho do conjunto que pode ser representado normalmente dependendo da máquina em que o programa está sendo executado;
     - float (flutuante): número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais;
     - double (duplo): número em ponto flutuante de precisão dupla;
     - void (vazio): este tipo serve para indicar que um resultado não tem um tipo definido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos tipos anteriores
6- Como representar os operadores matemáticos, relacionais e lógicos em um programa?
Os operadores matematicos podem ser representados por:
Adição: +
Subtração: -
Multiplicação: *
Divisão: /
Resto da Divisão: %
Os operadores relacionais são utlizados para comparer valores, o resultado de uma expressão relacional é um valor booleano (Verdadeiro ou Falso). Os operadores relacionais são: 
Igual: = =
Diferente: != 
Maior: >
Menor: <
Maior ou Igual: <=
Menor ou igual: >=
os principais operadores lógicos AND, NAND, OR, XOR e NOT, base para a construção de sistemas digitais e da Lógica proposicional, e também muito usado em linguagem de programação. Os operadores AND, NAND, OR e XOR são operadores binários, ou seja, necessitam de dois elementos, enquanto o NOT é unário. Na computação, esses elementos são normalmente variáveis binárias, cujos possíveis valores atribuídos são 0 ou 1. Porém, a lógica empregada para essas variáveis serve também para sentenças (frases) da linguagem humana, onde se esta for verdade corresponde ao valor 1, e se for falsa corresponde ao valor 0.
Utilização[editar | editar código-fonte]
x1 AND x2
x1 NAND x2
x1 OR x2
x1 XOR x2
NOT x1
Descrição[editar | editar código-fonte]
AND[editar | editar código-fonte]
Operador lógico no qual a resposta da operação é verdade (1) se ambas as variáveis de entrada forem verdade.
	x1
	x2
	x1 AND x2
	
	0
	0
	0
	
	0
	1
	0
	
	1
	0
	0
	
	1
	1
	1
	
NAND[editar | editar código-fonte]
Operador lógico no qual a resposta da operação é verdade (1) se pelo menos uma das variáveis é falso
	x1
	x2
	x1 NAND x2
	
	0
	0
	1
	
	0
	1
	1
	
	1
	0
	1
	
	1
	1
	0
	
OR[editar | editar código-fonte]
Operador lógico no qual a resposta da operação é verdade (1) se pelo menos uma das variáveis de entrada for verdade.
	x1
	x2
	x1 OR x2
	
	0
	0
	0
	
	0
	1
	1
	
	1
	0
	1
	
	1
	1
	1
	
XOR[editar | editar código-fonte]
Operador lógico no qual a resposta da operação é verdade (1) quando as variáveis assumirem valores diferentes entre si.
	x1
	x2
	x1 XOR x2
	
	0
	0
	0
	
	0
	1
	1
	
	1
	0
	1
	
	1
	1
	0
	
NOT[editar | editar código-fonte]
Operador lógico que representa a negação (inverso) da variável atual. Se ela for verdade, torna-se falsa, e vice-versa
	x1
	NOT x1
	
	0
	1
	
	1
	0
	
7- Por que o operador de igualdade é representado pelo símbolo == (de dois iguais)?
Ele retorna verddadeiro quando os dos valores testados sao iguais.
8- Como usar o comando de saída de dados para fazer impressão de resultados de operações e constantes?
Função para impressão de dados formatados na saída padrão (stdout - tela) definida no arquivo cabeçalho stdio.h. 
Sintaxe: 
printf (“<texto para impressão>”, <expressao1>, <expressao2>,…); 
Onde: 
<texto para impressão> é o texto que será impresso na tela. Este texto pode ser composto de caracteres que serão exibidos na tela e de caracteres especiais cuja função é indicar: a) os locais e tipos de expressões que serão mostradas ou b) ações que serão executadas como pular uma linha ou emitir um bip no alto-falante. 
<expresssao> este argumento é opcional e indica um valor que será impresso dentro do <texto para impressao>. Pode ser uma variável, constante, expressão aritmética ou lógica ou ainda uma chamada a outra função. 
Exemplos:
 printf ("Este texto será mostrado na tela.");
printf ("O valor da variável idade é %d.", idade); 
printf ("Depois deste texto serão puladas duas linhas.\n\n"); 
Para imprimir o conteúdo de uma variável dentro do texto é necessário inserir neste mesmo texto no local de impressão um % seguido do tipo a ser mostrado.
9 - Faça um algoritmo para calcular a área de um trapézio com altura de 5 cm e bases de 8 cm e 3 cm. Pesquise a fórmula para calcular essa área.
Algoritmo:
Sabe-se que A = (base maior + base menor) * altura) / 2
algoritmo "TRAPEZIO"
Variáveis
  área, base1, base2, altura: real;
inicio
  escreva ("base hum de Informe de maior-");
  leia (base1);
  escreva ("base Uma Informe menor-");
  leia (base2);
  escreva ("Informe hum altura-");
  leia (altura);
  área <- (+ base1 base2) * altura / 2;
  escreval ("Zona Fazer trapézio =", área);
fimalgoritmo
B: 8 cm
b: 3 cm
h: 5 cm
A=(B+b).h
    ----------
        2
A=(8+3).5
    ----------
        2
A=11.5
    ------
       2
A=55
     2
A=27,5cm²
10- Qual a importância do uso de variáveis em um programa?
As variáveis são importantes para o ARMAZENAMENTO DOS DADOS INSERIDOS, seja pelo programador ou pelo usuário. A utilização de variáveis traz um método genérico de atribuir uma operação segundo a sua finalidade.
11- Posso declarar uma variável do tipo inteiro e depois armazenar um texto nela e mostrar na saida?
Sim. Além do tipo int (para representar inteiros), temos também os tipos double e float (para números reais), string (para textos), entre outros.
EX:
 MessageBox.Show("O saldo da conta após o saque é: " + saldo);
12- Como usar o comando de entrada de dados para armazenar dados, vindos do teclado, em uma variável dentro do programa?
Para entrada de dados vindos do teclado veremos as funções usadas com mais frequência: scanf, gets, getch e getcharx
A função  scanf  (abreviatura de scan formatted) recebe do teclado uma lista de números, caracteres, strings, etc.  O primeiro argumento da função é uma string que especifica o formato da lista. Os demais argumentos são os endereços das variáveis onde os valores recebidos devem ser armazenados.  A função trata todos os brancos como se fossem espaços (caracteres ' ').
É utilizada para fazer a leitura de dados formatados via teclado.
Sintaxe:
scanf(“expressão de controle”, lista de argumentos);
Exemplo:
scanf(“%f”, &salario);
Explicação: este comando efetua uma leitura do teclado onde é esperada uma variável float (indicada por “%f”). O valor lido será armazenado noendereço da variável salário.
Na lista de argumentos devemos indicar os endereços das variáveis. Para fazer isso adicionamos o símbolo  “&”  como prefixo na frente do nome da variável.
13 – Construir um algoritmo que calcule a área de um triângulo dado a base e a altura. 
(at= (altura*base)/2).
Em Algoritmo:
Algoritmo Triangulo
Variaveis:
   base, altura, area : real;
Inicio
   Leia(Base)
   Leia(Altura)
   Area = (Base * Altura)/2
   Escreva (Area)
Fim
	1
2
3
4
	base   = input('Informe a base: ')
altura = input('Informe a altura: ')
area   = base * altura / 2.0
print 'Area: ', area
14 – Construir um algoritmo que leia o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: – A idade dessa pessoa; – Quantos anos essa pessoa terá em 2020. 
Algoritmo:
DECLARE ano_atual, ano_nascimento, idade_atual, idade_2020 NUMÉRICO
LEIA ano_atual, ano_nascimento
Idade_atual <-ano_atual – ano_nascimento
ESCREVA idade_atual, idade_2020
FIM_ALGORITMO
15 – Sabe-se que um quilowatt de energia custa 1/500 do salário mínimo. Faça um algoritmo que receba o valor do salário mínimo e a quantidade de quilowatts consumida por uma residência. Calcule e mostre: – O valor, em reais, de cada quilowatt; – O valor, em reais, a ser pago por essa residência – O valor, em reais, a ser pago com desconto de 15%.
#include<iostream>
using namespace std;
int main ( )
{
float sal, kw, kwc, consumo, desc;
cout<<"digite o seu salario:\n";
cin>>sal;
cout<<"digite a quantidade de quilowatt consumida:\n";
cin>>kwc;
kw=sal/5;
consumo=kw*kwc;
desc=consumo*0.15;
cout<<"O valor em reais de cada quilowatt eh:\n"<<kw;
cout<<"O valor a ser pago pelo consumo de quilowatt sera de:\n"<<consumo;
cout<<"O valor a ser pago pelo consumo com desconto de 15% sera de:\n"<<desc;
system("pause>>null");
return(0);
}
16 – Faça um algoritmo que receba um número, calcule e mostre: – O número elevado ao quadrado; – O número elevado ao cubo; – A raiz quadrada do número digitado; – O número elevado a potência 10; Para o exercício 7, pesquisar os métodos da classe Math de Java.
Var
n1:real
r1,r2,r3,r4
Inicio
escreva(“ola, digite um numero:”)
leia(n1)
r1<-n1^2
r2<-n1^3
r3<-raizq(n1)
r4<-exp(n1,10)
escreva(“o numero”, n1,“elevado ao quadrado é:”,r1)
escreva(“o mesmo numero”,n1,”elevado ao cubo é:”,r2)
escreva(“a raiz quadrada de”,n1,”é igual a:”,r3)
 escreva(“o número”,n1,”elevado a 10 potencia é igual a:”,r4)
Fimalgoritimo
17 - Quais operadores posso utilizar para montar as condições dentro do programa? 
18 - Qual a finalidade da cláusula else do comando if?
Este comando permite a execução condicional de um ou mais comandos seqüenciais. O comando IF inicia a lista de condições, e pode ser seguido do comando ELSIF contendo também, condições a serem verificadas. Se nenhuma das condições forem verdadeiras e existir uma cláusula ELSE, o conjunto de comandos que segue será executado. E se não houverem nenhuma condição verdadeira e nem a cláusula ELSE, nenhum comando será executado. Em uma cadeia de IF ELSEs, as condições são dispostas em uma prioridade onde o primeiro IF define a condição de maior prioridade.
 
19 - Quando as instruções após o fim do bloco do else serão executadas?
Se a condição verdadeira, serão executadas as instruções posicionadas dentro do bloco, sendo a condição falsa, serão executadas as instruções posicionadas no bloco logo após o comando else. Como indicado na seguinte sintaxe:
20 - Existe o comando if sem a cláusula else?
O comando IF permite que você condicionalmente executar um comando. Você pode opcionalmente Cláusula ELSE sobre o comando IF.
Se a expressão teste for avaliada como falsa existe uma cláusula ELSE, o comando associado a cláusula ELSE é executada. As palavras-chave não podem ser abreviadas.
IF [condition] THEN
 [COBOL statements]
ELSE
 [COBOL statements]
END-IF.
21 – Faça um algoritmo que leia um número inteiro. Calcular e imprimir a metade do número, somente se ele for maior que 20.
Algoritmo \u201cquestao21\u201d
var
numero, metade: inteiro
inicio
escreval(\u201cDigite um número: \u201d)
leia(numero)
se (numero > 20) entao
metade <- numero/2
escreval(\u201cA metade do número é: \u201d , metade)
senão
escreval(\u201cNúmero não é maior do que 20\u201d)
fimalgoritmo
22 – Faça um algoritmo para ler um número inteiro. Verificar se o número está no intervalo entre 50 (inclusive) e 100 (inclusive), se estiver, imprimir “Pertence ao intervalo”, senão imprimir “Não pertence ao intervalo”.
Algoritmo \u201cquestao22\u201d
var
numero, metade: inteiro
inicio
escreval(\u201cDigite um número: \u201d)
leia(numero)
se ((numero > 50 )ou(numero < 100)) entao
escreval(\u201cO número pertence ao intervalo\u201d)
senão
escreval(\u201cNão pertence ao intervalo\u201d)
fimalgoritmo
23 – Ler dois valores inteiros e apresentar a diferença do maior pelo menor. Supor que não sejam iguais.
Algoritmo \u201cquestao23\u201d
var
n1, n2: inteiro
inicio
escreval(\u201cDigite um número: \u201d)
leia(n1)
escreval(\u201cDigite outro número: \u201d)
leia(n2)
se (n1 > n2) entao
escreval(\u201cA diferença entre \u201d, n1 \u201c e \u201d, n2, \u201cé: \u201d, n1 \u2013 n2)
senão
escreval(\u201cA diferença entre \u201d, n2 \u201c e \u201d, n1, \u201cé: \u201d, n2 \u2013 n1)
fimalgoritmo
24 – Ler dois números (ponto flutuante) e apresentá-los em ordem decrescente. Supor que não sejam iguais.
Algoritmo \u201cquestao24\u201d
var
n1, n2: inteiro
inicio
escreval(\u201cDigite um número: \u201d)
leia(n1)
escreval(\u201cDigite outro número: \u201d)
leia(n2)
se (n1 > n2) entao
escreval(n2,n1)
senão
escreval(n1,n2)
fimalgoritmo
25 – A empresa XSoftware concedeu um bônus de 20% do valor do salário a todos os funcionários com tempo de trabalho na empresa igual ou superior a cinco anos e de 10% aos demais funcionários. Faça um algoritmo que leia o salário e a quantidade de anos de casa de um funcionário, calcule e imprima o valor do bônus.
Algoritmo \u201cquestao25\u201d
var
salario, quantAnos, salarioAumento10, salarioAumento20: real
inicio
escreval(\u201cDigite seu salário: \u201d)
leia(salario)
escreval(\u201cDigite a quantidade de anos na empresa: \u201d)
leia(quantAnos)
se (quantAnos >= 5) então
salarioAumento20 <- salario + (salario * (20/100))
escreval(\u201cSeu novo salário será: \u201d, salarioAumento20, \u201c reais\u201d)
senão
salarioAumento10 <- salario + (salario * (10/100))
escreval(\u201cSeu novo salário será: \u201d, salarioAumento10, \u201c reais\u201d)
fimalgoritmo
26 – Faça um algoritmo que receba a idade de uma pessoa e mostre se ela é maior de idade ou não.
Algoritmo \u201cquestao26\u201d
var
idade: inteiro
inicio
escreval(\u201cDigite sua idade: \u201d)
leia(idade)
se (idade >= 18) entao
escreval(\u201cMaior de idade\u201d)
senão
escreval(\u201cMenor de idade\u201d)
fimalgoritmo
27 – Faça um algoritmo que leia a altura e o sexo de uma pessoa, calcule e mostre seu peso ideal. Usar as fórmulas a seguir para calcular o peso ideal: – Para o sexo masculino: (72,7 * altura) – 58 – Para o sexo feminino: (62,1 * altura) – 44,7
Algoritmo \u201cquestao27\u201d
var
altura: real
pIdealHomem, pIdealMulher: real
sexo: string
inicio
escreval(\u201cDigite sua altura: \u201d)
leia(altura)
escreval(\u201cDigite seu sexo: F ou M\u201d)
leia(sexo)
se (sexo = \u201cM\u201d) então
pIdealHomem <- (72,7 * altura) \u2013 58
escreval(\u201cSeu peso ideal é: pIdealHomem\u201c)
senão
pIdealMulher <- (62,1 * altura) \u2013 44,7.
escreval(\u201cSeu peso ideal é: pIdealMulher\u201d)
fimalgoritmo
28 – A prefeitura do Rio de Janeiro abriu uma linha de crédito para os funcionários estatutários. O valor máximo da prestação não poderá ultrapassar 30% do salário bruto. Fazer um algoritmo que leia o salário bruto e o valor da prestação e informar se o empréstimo pode ou não ser concedido. Exemplo: Salário bruto: 1200,00 Valor da prestação: 400,00 Empréstimo não pode ser concedido!! 
Algoritmo \u201cquestao28\u201d
var
salarioB, ValorP: real
inicio
escreval(\u201cDigite seu salário bruto: \u201d)
leia(salarioB)
escreval(\u201cDigite o valorda prestação: \u201d)
leia(valorP)
se (valorP > (salarioB * (30/100))) então
escreval(\u201cEmpréstimo não pode ser concedido!\u201d)
senão
escreval(\u201cEmpréstimo pode ser concedido!\u201d)
fimalgoritmo

Continue navegando