Escolar Documentos
Profissional Documentos
Cultura Documentos
MODULO 1
1 - INTRODUÇÃO
Para se usar o raciocínio lógico precisamos ter em mente alguns conceitos, tais como,
calma, conhecimento, vivência, versatilidade, experiência, criatividade, ponderação,
responsabilidade, entre outros.
Para se usar a lógica precisamos ter domínio sobre o pensamento, precisamos saber pensar,
ou seja, possuir a arte de pensar, ou até mesmo ter coerência, precisamos ter como profissionais de
Tecnologia da informação um esquema sistemático que define as interações de sinais no
equipamento automático do processamento de dados, ou o computador com o critério e princípios
formais de raciocínio e pensamento.
Podemos definir lógica como sendo uma ciência que estuda as leis e critérios de validade
que regem o pensamento e a demonstração, ou seja, ciência dos princípios formais do raciocínio.
Usar a lógica é um fator a ser considerado por todos, principalmente pelos profissionais de
Informática, pois seu dia-a-dia dentro das organizações é solucionar problemas e atingir os
objetivos apresentados por seus usuários com a eficiência e eficácia, utilizando recursos
computacionais e/ou automatizados.
A técnica de utilização de algoritmos permite que posteriormente possamos efetuar a
codificação em qualquer linguagem de programação, pois na elaboração da lógica de programação
se atinge um detalhamento de instruções necessárias para caracterizar um conjunto de instruções,
os quais uma linguagem necessita para sua codificação.
A técnica mais importante no projeto da lógica de programas é chamada programação
estruturada, a qual consiste em uma metodologia de projeto, objetivando:
Existem diversas maneiras de notações gráficas, no qual veremos mais adiante, mas a
técnica narrativa e a mais predominante são a que vamos utilizar em nosso curso, também
denominado pseudocódigo ou português estruturado ou chamado por alguns de portugol.
Esta técnica de algoritmização e baseada em uma PDL – Program Design Language
(Linguagem de Projeto de Programação). Muito parecido com a linguagem Pascal.
Exemplo:
Vamos criar um programa para ler a 3 notas de um aluno e seu respectivo nome, o processamento
do programa será em calcular a média aritmética entre as 3 notas e exibir no vídeo a média
aritmética e o nome do aluno.
ALGORITMO CALCULO_MEDIA
VAR
NOME:TEXTO
NOTA1, NOTA2, NOTA3,MEDIA:REAL
INICIO
ESCREVA “DIGITE O NOME:”;LEIA NOME
ESCREVA “DIGITE A 1ª NOTA:”;LEIA NOTA1
ESCREVA “DIGITE A 2ª NOTA:”;LEIA NOTA2
ESCREVA “DIGITE A 3ª NOTA:”;LEIA NOTA3
MEDIA Å (NOTA1 + NOTA2 + NOTA3) / 3
ESCREVA “O NOME DO ALUNO É:”,NOME
ESCREVA “SUA MÉDIA É:”,MEDIA
FIM
Program programa1;
uses Wincrt; {alterar no turbo pascal para crt}
var
nome:string;
nota1,nota2,nota3,media:real;
Begin
Clrscr;
Write('Digite um nome :');readln(nome);
Write('Digite a 1º Nota:');readln(nota1);
Write('Digite a 2º Nota:');readln(nota2);
Write('Digite a 3º Nota:');readln(nota3);
media:= (nota1 + nota2 + nota3)/3;
Writeln('O aluno:',nome, ' Sua média é:',media);
readkey;
end.
2 - NOÇÕES DE LÓGICA
A lógica já esta embutida em cada indivíduo vivo racional desse planeta. Basta apenas
saber como desenvolvê-la de forma coerente. Em geral algoritmos computacionais servem para
organizar os pensamentos de pessoas que têm por objetivo implementar programas de
computadores para solução de problemas diversos.
Consiste em utilizar os princípios da matemática, confirmando que ela é uma ciência exata
e por isso, em suas aplicações no dia-a-dia, acusa zero como parâmetro de margem de erro. O
raciocínio lógico matemático é a pratica da matemática através do problema proposto que envolva
a interpretação, dedução e solução dos mesmos, utilizando para isso a lógica, justeza do
raciocínio, de cada indivíduo, de acordo com a situação em que se encontre no momento.
Exemplo:
Se
5+4–6=3
e
4+3–5=2
Logo
3+2–4=1
Portanto, quando paramos para analisar uma determinada série e conseguimos entendê-la,
naturalmente, conseguiremos, chegar à resposta correta, assim poderíamos dizer qual a próxima
seqüência:
2+1–3=0
A idéia é começar a preencher o quadrado central (o ponto chave para a solução do problema).
27 32 26 31 25 ...
1 4 16 64 256 ...
a)80 b)512 c)1024 d)4096 e) 192 – pois 256 multiplicado por 4 é igual – 1024
Se marco é filho de Paulo que é casado com Ana; e Clarice é minha irmã e filha de Ana; então, o
que Paulo é meu?
Resposta: Pai
Se o pai de Paulo é o sogro de Maria, e esta é cunhada de Ana por parte de Paulo, o que a mãe de
Paulo é para Ana?
Representa a forma pela qual iremos tomar uma determinada decisão ao escrevermos um
processo computacional qualquer.
Estudo de Enunciados
Falso
PROF. MARCIO FERREIRA DE JESUS 4
ALGORITMOS + PASCAL
Os enunciados podem ser compostos, com mais de uma condição vinculada. Para isso precisamos
utilizar os chamados conectivos. Eles são utilizados com o objetivo de permitir a leitura e
interpretação, a partir de uma expressão lógica:
~ Negador ou Não
V
Disjuntor ou OU
^
Conjuntor ou E
Æ
Condicional ou implicador ( Se... Então)
2.4 - TABELAS-VERDADE
A B A ^B A∨B AÆB A B
V V V V V V
V F F V F F
F V F V V F
F F F F V V
A ~B
V F
F V
Exemplo:
A ∨ ~B C ∨ ~D A ^ B ~C ∨ D
V F F V V V V F
V V V V
V V
PROF. MARCIO FERREIRA DE JESUS 5
ALGORITMOS + PASCAL
Os dados, propriamente ditam, que correspondem à porção das informações a serem processadas
pelo computador. Estas informações estão caracterizadas por três tipos de dados, a saber: dados
numéricos (inteiros e reais), dados Literais (texto e caractere) e dados lógicos.
Reais – São aqueles que podem possuir componentes decimais ou fracionários, e podem também
ser positivos ou negativos.
Em pascal REAL;
Inteiros – São aqueles que não possuem componentes decimais ou fracionários, podendo ser
positivos ou negativos.
Em pascal INTEGER;
Texto – Este tipo de dado é também muitas vezes chamado de alfanumérico, cadeia (ou cordão)
de caracteres, ou ainda do inglês, STRING. Estes dados são representados nos algoritmos pela
coleção de caracteres, delimitada em seu início e término com o caractere aspas (“).
Em pascal STRING; ou STRING[35];
Caractere – Este tipo de dado caracteriza-se por possuir o tamanho de um caracteres apenas, em
inglês conhecido como CHAR.
Em pascal CHAR;
Os tipos de dados lógicos são usados para representar dois únicos valores lógicos posáveis:
verdadeiro e falso. È comum encontrar-se em outras referências outros tipos de pares de valores
lógicos como sim/não, 1/0, True/false. Também chamados de booleano, devido à significativa
contribuição do BOOLE à área da lógica matemática.
Em pascal BOOLEAN;
Exercício:
Classifique os dados especificados abaixo de acordo com o seu tipo, assinalando com I os dados
tipo inteiro, com R os reais, com C o caractere, com T os textos, com B os booleanos.
3.5 - VARIÁVEIS
Tem-se como definição de variável tudo aquilo que é sujeito a variações, que é incerto,
instável ou inconstante. E quando se fala de computadores, temos que ter em mente que o volume
de informações a serem tratadas é grande e diversificado. Desta forma os dados a serem
processados serão bastante variável.
Para qualquer tipo de programa de computador ser executado, torna-se necessário a
manipulação de informações que serão representadas pelos diferentes tipos de dados. Para que não
se esqueça das informações, o computador precisa guardá-las em sua memória.
A memória de um computador pode ser vista como um conjunto ordenado de células, cada
uma identificada unicamente por um número inteiro distinto, conhecido como endereço.
Tem-se como definição de constantes tudo aquilo que é fixo ou estável. E existiram vários
momentos em que este conceito deverá estar em uso. Por exemplo, o valor 1.23 de a fórmula a
seguir é uma constante: RESULTADO = ENTRADA * 1.23.
4. INSTRUÇÕES BÁSICAS
Operador Operação
+ Soma
- Subtração
* Multiplicação
/ Divisão
** ou ↑ Exponenciação
MOD Resto de uma divisão
inteira
DIV Quociente de uma
divisão inteira
SEM(X) Seno de x
COS(X) Coseno de x
TG(X) Tangente de x
SQRT(X) Raiz quadrado de x
Operador Operação
Não (NOT) Negação
E (AND) Conjunção
OU (OR) Disjunção
Usados somente quando se deseja efetuar comparações. Comparações só podem ser feitas
entre objetos de mesma natureza, isto é, variáveis do mesmo tipo de dado. O resultado de uma
comparação é sempre um valor lógico.
Operação Símbolo
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
Igual a =
Diferente de <>
Atribuição ← (:=)
Seguindo essas regras simples, você será capaz de escrever algoritmos computacional de
altíssima qualidade bastante objetividade e bem legível para que outros possam efetivamente
entendê-los.
Observe a identação do algoritmo (a forma como ele é codificado).
ALGORITMO <NOME> {Não pode ser um nome próprio e não pode ser repetir no nome de
{Uma variável do longo do corpo do algoritmo}
{Área de Declaração}
CONST {Declaração de Identificadores constantes}
IDENTIFICADOR = Valor
.......
VAR
<área de declaração das variáveis> {Identificar as variáveis, sem acentuação gráfica, não pode
conter nomes próprios e não pode se repetir em outra
variável ou no nome do algoritmo}
TIPO DA VARIAVEL: IDENTIFICADOR
.......
INICIO
{Inicio da seqüência lógica de instruções (comandos), corpo principal do algoritmo}
.......
FIM
Área de Declarações : validar qualquer tipo de identificador que não seja predefino:
Uses
Label
Const
Type
Var
Procedure
function
Exemplo: var
nome:string;
idade,a,b,c:integer;
altura:real;
São comandos básicos que efetuam tarefas essenciais para a operação dos computadores,
como entrada e saída de dados (comunicação com o usuário e com os dispositivos periféricos), e
movimentação dos mesmos na memória.
Como o próprio nome diz, serve para atribuir valores a identificadores de variáveis. A
atribuição tem o mesmo efeito do operador de igualdade.
IDENTIFICADOR1 ← 2
Em pascal :=
Exemplo 2
Criar um algoritmo para ler o nome de um produto, seu preço unitário a quantidade do produto
que o cliente irá levar e exibir no final do processamento o preço total.
ALGORITMO EXEMPLO2
VAR
PRECO_UNIT, PRECO_TOT : REAL
NOME_PRODUTO : TEXTO
QTD : INTEIRO
INICIO
ESCREVA “Digite o nome do produto:”;LEIA NOME_PRODUTO
ESCREVA “Digite o preço do produto:”;LEIA PRECO_UNIT
ESCREVA “Digite a quantidade :”;LEIA QTD
PRECO_TOT ← PRECO_UNIT * QTD
ESCREVA “O Preço total do produto é:”,PRECO_TOT
FIM
Obs.: Todo o algoritmo deverá ser escrito em formato de FORMA, salvo apenas os textos a serem
impressos no vídeo ou na impressora, que não segue nenhuma regra pois e simplesmente uma
mensagem emitida ao usuário.
Em pascal
Program programa2;
uses Wincrt;
var
preco_unit, preco_tot:real;
nome,produto:string;
qtd:integer;
Begin
Clrscr;
Write('Digite nome do produto :');readln(nome);
Write('Digite o preço do produto:');readln(preco_unit);
Write('Digite a quantidade :');readln(qtd);
preco_tot := preco_unit * qtd;
Writeln('O preço total do produto e:',preco_tot:8:2);
readkey;
end.
1 – Criar um algoritmo para efetuar o cálculo da área de uma circunferência, onde a formula a ser
executa é A = π R2, onde A é a variável de conterá o resultado do cálculo da área, π é o valor de pi
(3.14159, sendo uma constante na formula) e R o valor do raio. Imprima o resultado de A.
ALGORITMO PROG46_1
CONST
PI=3.14159
VAR
A,R:REAL
INICIO
ESCREVA "Digite o valor do raio:";leia r
a <-- pi * (r*r)
ESCREVA "O valor da área da circunferência é ",r
FIM
Program prog46_1;
uses wincrt;
const
pi=3.14159;
var
a,r:real;
Begin
Write('Digite o valor do Raio:');Readln(r);
a:=pi*(r*r);
Writeln('O valor da área da circunferência é:',a:2:0);
end.
ALGORITMO PROG46_2
VAR
SAL_LIQUIDO,VAL_HORA_AULA:REAL
AULAS_MES:INTEIRO
PERC_INSS:REAL
INICIO
ESCREVA "Digite o valor da hora aula:";leia val_hora_aula
ESCREVA "Digite quantas aulas foram datas no mês:';leia aulas_mes
ESCREVA "Qual o percentual do INSS:";leia perc_inss
perc_inss <-- perc_inss / 100
sal_bruto <-- val_hora_aula * aulas_mes
Sal_liquido <-- sal_bruto - (sal_bruto * perc_inss)
ESCREVA "O salário bruto do professor é :",sal_bruto
ESCREVA "O Salário liquido do professor é :",sal_liquido
FIM
Program prog46_2;
uses wincrt;
var
sal_liquido,val_hora_aula:real;
aulas_mes:integer;
perc_inss:real;
sal_bruto:real;
Begin
Write('Digite o valor da hora aula:');Readln(val_hora_aula);
Write('Digite quantas aulas foram dadas no mês:');Readln(aulas_mes);
Write('Qual o percentual do INSS:');Readln(perc_inss);
perc_inss:= perc_inss /100;
sal_bruto := val_hora_aula * aulas_mes;
sal_liquido:= sal_bruto - (sal_bruto * perc_inss);
Writeln('O salário bruto do professor é :',sal_bruto:8:2);
Writeln('O salário Liquido do professor é :',sal_liquido:8:2);
end.
3 – Criar um algoritmo para ler uma temperatura em graus Celsius e apresentá-la convertida em
graus Fahrenheit. A formula de conversão é: F ← (9 * C + 160) /5. Onde F é a temperatura em
Fahrenheit e C é a temperatura em Celsius.
ALGORTIMO PROGR46_3
VAR
F,C:REAL
INICIO
ESCREVA "Digite a temperatura em Celcius:";LEIA C
F <-- (9 * C + 160) / 5
ESCREVA "a temperatura convertida em Fahrenriheit e:",f
FIM
Program prog46_3;
uses wincrt;
var
f,c:real;
Begin
Write('Digite a temperatura em Celcius:');readln(c);
f:=(8*c+160) / 5;
Writeln('a temperatura convertida em Fahrenriheit e:',f:2:2);
end.
4.7 – EXERCÍCIOS
2 – Ler dois valores para as variáveis A e B, efetuar a troca dos valores de forma que a variável A
passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A.
Apresentar os valores trocados, imprimindo A e depois B.
6 – Elaborar um programa que efetue a leitura de três valores (A, B e C) e apresente como
resultado final o quadrado da soma dos três valores lidos.
8 – Criar um algoritmo para ler um número, dividir este número por 6 apresentar o quociente e
resto desta divisão.
10 – Criar um algoritmo para calcular o valor de Y como função de X, segundo a função y(x) = 3x
+ 2, num domínio real.