SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
1
Definição de Lógica
O uso corriqueiro da palavra lógica está normalmente
relacionado à coerência e à racionalidade. Frequentemente
se associa lógica apenas à matemática, não se percebendo
sua aplicabilidade e sua relação com as demais ciências.
Podemos relacionar a lógica com a correção do
pensamento, pois uma de suas preocupações é determinar
quais operações são válidas e quais não são, fazendo
análises das formas e leis do pensamento. Com arte ou
técnica, ela nos ensina a usar corretamente as leis do
pensamento.
Poderíamos dizer também que a lógica é a "arte de bem
pensar", que é a "ciência das formas do pensamento". Visto
que a forma mais complexa do pensamento é o raciocínio, a
lógica estuda a "correção do raciocínio". Podemos ainda
dizer que a lógica tem em vista a "ordem da razão". Isso dá
a entender que a nossa razão pode funcionar
desordenadamente. Por isso, a lógica estuda e ensina a
colocar "ordem no pensamento".
Definição de Lógica de Programação
Significa o uso correto das leis do pensamento, da
"ordem da razão" e de processos de raciocínio e
simbolização formais na programação de computadores,
objetivando a racionalidade e o desenvolvimento de técnicas
que cooperem para a produção de soluções logicamente
válidas e coerentes, que resolvam com qualidade os
problemas que se deseja programar.
O raciocínio é algo abstrato, intangível. Os seres
humanos têm capacidade de expressá-lo através da palavra
falada ou escrita, que por sua vez se baseia em um
determinado idioma, que segue uma série de padrões
(gramática). Um mesmo raciocínio pode ser expresso em
qualquer um dos inúmeros idiomas existentes, mas continuará
representando o mesmo raciocínio, usando apenas outra
convenção.
Algo similar ocorre com a Lógica de Programação, que
pode ser concebida pela mente treinada e pode ser
representada em qualquer uma das inúmeras linguagens de
programação existentes. Essas, por sua vez, são muito
atreladas a uma grande diversidade de detalhes
computacionais, que pouco têm a ver com o raciocínio
original. Para escapar dessa torre de babel e, ao mesmo
2
tempo, representar mais fielmente o raciocínio da lógica de
programação, utilizamos os algoritmos.
Algoritmos
O objetivo principal do estudo da lógica de
programação é a construção de algoritmos coerentes e
válidos. Mas o que é um algoritmo?
Um algoritmo pode ser definido como uma sequencia de
passos que visam a atingir um objetivo bem definido.
Na medida em que precisamos especificar uma sequencia
de passos, é necessário utilizar ordem, ou seja, "pensar
com ordem", portanto precisamos utilizar lógica.
Apesar do nome pouco usual, algoritmos são comuns em
nosso cotidiano, como, por exemplo, uma receita de bolo.
Nela está descrita uma série de ingredientes necessários e
uma sequencia de diversos passos (ações) que devem ser
fielmente cumpridos para que se consiga fazer o alimento
desejado, conforme se espera antes do início das atividades
(objetivo bem definido).
Quando elaboramos um algoritmo, devemos especificar
ações claras e precisas, que a partir de um estado inicial,
após um período de tempo finito, produzam um estado final
previsível e bem definido. Isso significa que o algoritmo
fixa um padrão de comportamento a ser seguido, uma norma de
execução a ser trilhada, com vistas a alcançar, como
resultado final, a solução de um problema, garantindo que
sempre que executado, sob as mesmas condições, produza o
mesmo resultado.
Tipos de Dados
Tipo primitivo: São tipos de dados predefinidos pela
linguagem e correspondem a dados mais simples ou escalares.
Os tipos primitivos utilizados por um computador são
numéricos (inteiros ou reais), caracteres e lógicos.
Tipo de Dado Inteiro: São caracterizados como tipos
inteiros os dados numéricos positivos ou negativos,
excluindo-se destes qualquer número fracionário (números do
tipo real). Em linguagem C, este tipo de dado pode ser
referenciado por um dos seguintes identificadores:
3
Tipo Inteiro Mínimo Máximo
int -32.768 32.767
long (int) -2.147.483.648 2.147.483.647
unsigned int 0 65.535
unsigned long (int) 0 4.292.967.295
Tipo de Dado Real: São caracterizados como tipos reais
os dados numéricos positivos, negativos e números
fracionários e também inteiros. Em linguagem C, este tipo
de dado pode ser referenciado por um dos seguintes
identificadores:
Tipo Inteiro Mínimo Máximo
float 3.4 e-38 3.4 e+38
double 1.7 e-308 1.7 e+308
long double 3.4 e-4932 1.1 e+4932
Tipo de Dado Caractere: São caracterizados como tipo
caractere letras (a..z, A..Z), números (0..9) e símbolos
especiais (! @ # $ % ^...) delimitados entre os símbolos de
aspas simples (' '), para as sequencias (Strings) de
letras, números e símbolos especiais, utilizamos aspas
duplas (" "). Este tipo de dado é referenciado pelo
identificador: char, podendo armazenar caracteres da tabela
ASCII de 0 até 255.
Tipo de Dado Lógico: A Linguagem C não possui um tipo
de dado lógico ou booleano, ou seja, não existe valor
lógico "Falso" ou "Verdadeiro" para um determinado tipo de
dado, de forma predefinida. EM linguagem C qualquer valor
igual a 0 (zero) é considerado um valor lógico do tipo
falso, e qualquer valor diferente de zero, será considerado
um valor lógico verdadeiro.
Uso de Variáveis e Constantes
Constante: Uma constante é qualquer dado que não sofre
alteração ou variação durante a execução de um programa, ou
seja, seu valor é constante do início até o fim da
execução.
Variável: Uma variável representa a unidade básica de
armazenamento temporário de dados e é composta por um tipo,
um identificador (nome), um tamanho e um valor.
4
O objetivo de uma variável é armazenar um dado de
determinado tipo primitivo, podendo ser alterado durante a
execução do programa.
Exemplo:
int notaAluno = 8
Operadores e Expressões Matemáticas Computacionais
Operadores Matemáticos: são utilizados para a
realização de operações matemáticas com operandos de tipos
numéricos, do mesmo modo como são aplicados na álgebra.
Operação Função
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo (resto da divisão)
Geralmente o operador de módulo (%) é menos conhecido
do que os operadores de multiplicação e divisão. Este
operador retorna o resto de uma divisão.
Exemplo:
10 |3
1 3
Em linguagem C, a sintaxe é a seguinte:
int a;
a = 10 % 3;
Comandos de Leitura e Escrita
Os programas precisam receber dados provenientes do
meio externo para poderem efetuar operações e cálculos
necessários a fim de alcançar o resultado desejado. Do
mesmo modo, o resultado final deve ser devolvido ao meio
externo. Com essa finalidade, utilizamos comandos de
entrada e saída.
Tipo Nome
Valor
Tamanho: 4 bytes
-32.768 até 32.767
Resto da Divisão
5
Entrada de dados: Para que o programa possa receber
dados de que necessita, iremos utilizar a função scanf(),
cuja finalidade é efetuar entrada de dados via teclado. A
sintaxe desta função se caracteriza por ser uma expressão
de controle seguida de uma lista de argumentos separados
por vírgula, sendo que seus argumentos são endereços de
variáveis.
scanf("expressão de controle", "lista de args");
A expressão de controle se caracteriza por conter
códigos de formatação para o tipo de dado a ser processado,
precedidos pelo sinal de percentagem %. Veja a seguir, a
tabela com os códigos de formatação para a função scanf().
Formatação Descrição
%c Leitura de apenas um caractere
%d Leitura de números inteiros
%e Leitura de números em notação científica
%f Leitura de números reais (ponto flutuante)
%ld Leitura de números inteiros longos
%lf Leitura de números reais longos (double)
%o Leitura de números octais
%s Leitura de um conjunto de caracteres (String)
%u Leitura de números decimais sem sinal
%x Leitura de números hexadecimais
A lista de argumentos é a indicação dos endereços das
variáveis em uso, por meio do operador de endereço &, que
possibilita retornar o conteúdo da variável. Caso não seja
usado o operador de endereço &, será retornado o endereço
de memória em que se encontra a variável.
Exemplo:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a;
float b;
char string[64];
printf("Digite um número inteiro: ");
scanf("%d", &a);
printf("Digite um número em ponto flutuante: ");
scanf("%f", &b);
printf("Digite uma frase: ");
scanf("%s", &string);
getch();
}
6
Saída de dados: Para que o programa possa mostrar os
dados que processou, como resposta ao problema que
resolveu, usaremos a função printf(), cuja finalidade é
efetuar a saída de informações no vídeo. A sintaxe desta
função é:
printf("expressão de controle", "lista de argumentos");
A expressão de controle se caracteriza por conter
códigos de formatação para o tipo de dado a ser processado,
precedido pelo sinal de percentagem %. Veja abaixo a tabela
com os códigos de formatação para a função printf().
Formatação Descrição
%c Escrita de apenas um caractere
%d Escrita de números inteiros
%e Escrita de números em notação científica
%f Escrita de números reais (ponto flutuante)
%o Escrita de números octais
%s Escrita de um conjunto de caracteres (String)
%u Escrita de números decimais sem sinal
%x Escrita de números hexadecimais
Exemplo:
#include <stdio.h>
int main(int argc, char *argv[])
{
int a;
float b;
char string[64];
printf("Digite um numero inteiro: ");
scanf("%d", &a);
printf("Digite um numero em ponto flutuante: ");
scanf("%f", &b);
printf("Digite uma frase: ");
scanf("%s", &string);
a = a + 10;
b = b + 0.5;
printf("A variavel a foi acrescida em 10: %dn", a);
printf("A variavel b foi acrescida em 0.5: %fn", b);
printf("A variavel string recebeu a frase: %sn", string);
getch();
}
7
Operadores Relacionais
Os operadores relacionais possibilitam comparar
valores ou expressões retornando sempre um resultado lógico
true (verdadeiro) ou false (falso). Em linguagem C, um
resultado lógico false será interpretado como 0 (zero). Já
um resultado lógico true será interpretado como algo
diferente de 0 (zero).
A tabela abaixo resume os operadores relacionais
disponíveis na linguagem C.
Operador Função
== Igual a
!= Diferente de
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
O programa abaixo exemplifica a utilização destes
operadores relacionais para tipos primitivos.
#include <stdio.h>
int main(int argc, char *argv[]){
int it1 = 10, it2 = 15, it3 = 10, it4 = 15;
int b1, b2, b3, b4, b5, b6, b7, b8;
b1 = it1 == it2;
printf("it1 == it2 eh: %dn", b1);
b2 = it1 == it3;
printf("it1 == it3 eh: %dn", b2);
b3 = it1 != it2;
printf("it1 != it2 eh: %dn", b3);
b4 = it1 != it3;
printf("it1 != it3 eh: %dn", b4);
b5 = it2 > it4;
printf("it2 > it4 eh: %dn", b5);
b6 = it2 >= it4;
printf("it2 >= it4 eh: %dn", b6);
b7 = it3 < it4;
printf("it3 < it4 eh: %dn", b7);
b8 = it2 <= it4;
printf("it2 <= it4 eh: %dn", b8);
getch();
}
8
Saída gerada pela execução do programa acima:
it1 == it2 eh: 0
it1 == it3 eh: 1
it1 != it2 eh: 1
it1 != it3 eh: 0
it2 > it4 eh: 0
it2 >= it4 eh: 1
it3 < it4 eh: 1
it2 <= it4 eh: 1
Operadores Lógicos
Utilizamos três operadores básicos para a formação de
novas proposições lógicas compostas a partir de outras
proposições lógicas simples. Os operadores lógicos estão
descritos na tabela abaixo.
Operador Função
não Negação
e Conjunção
ou Disjunção
Tabela Verdade: É o conjunto de todas as
possibilidades combinatórias entre os valores de diversas
variáveis lógicas, as quais se encontram em apenas duas
situações (V ou F), e um conjunto de operadores lógicos.
Construiremos uma tabela verdade com o objetivo de
dispor de uma maneira prática os valores lógicos envolvidos
em uma expressão lógica.
Operação de Negação
A não A
V F
F V
Operação de Conjunção
A B A e B
V V V
V F F
F V F
F F F
9
Operação de Disjunção
A B A ou B
V V V
V F V
F V V
F F F
Operadores Lógicos na Linguagem C
Os operadores lógicos são utilizados para construir
expressões que retornam um resultado zero (false) ou
diferente de zero (true).
A linguagem C fornece operadores lógicos que podem ser
utilizados para formar condições mais complexas combinando
condições simples.
A tabela abaixo resume os operadores lógicos
disponíveis na linguagem C.
Operador Função
|| ou (or) lógico condicional
&& e (and) lógico condicional
! negação (not)
Operador Lógico condicional E (&&)
Para o operador && o operando da direita somente será
avaliado se o operando da esquerda for avaliado como
verdadeiro.
Operador Lógico condicional OU (||)
Para o operador || o operando da direita somente será
avaliado se o operando da esquerda for avaliado como falso.
10
O programa C abaixo exemplifica a utilização dos
operadores lógicos condicionais para tipos primitivos.
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[])
{
int a = 5, b = 7, c = 10;
int b1, b2, b3, b4;
b1 = (a > 3) && (b < 8);
printf("(a > 3) && (b < 8): %dn", b1);
b2 = (a > 3) && (b < 8) || (c < 20);
printf("(a > 3) && (b < 8) || (c < 20): %dn", b2);
b3 = (a > 3) || (b > 8) && (c < 20);
printf("(a > 3) || (b > 8) && (c < 20): %dn", b3);
b4 = !(c > 5 || !(b > 10));
printf("!(c > 5 || !(b > 10)): %dn", b4);
getch();
}
Abaixo temos a saída gerada pelo programa acima:
(a > 3) && (b < 8): 1
(a > 3) && (b < 8) || (c < 20): 1
(a > 3) || (b > 8) && (c < 20): 1
!(c > 5 || !(b > 10)): 0
Vamos analisar mais um exemplo da utilização dos operadores
lógicos
#include <stdio.h>
#include <conio.h>
int op1(){
printf("Dentro de op1n");
return 0;
}
int op2(){
printf("Dentro de op2n");
return 1;
}
int main(int argc, char *argv[]){
printf("==== Testando o operador && =======nn");
if (op1() && op2())
printf("Ambos verdadeirosn");
else
printf("Um dos operandos eh falson");
printf("nn==== Testando o operador || =======nn");
if (op1() || op2())
printf("Um dos operandos eh verdadeiron");
else
printf("Ambos sao falsosn");
11
getch();
}
Comando de Atribuição
Um comando de atribuição permite-nos fornecer um valor
a uma variável (guardar um valor em uma gaveta), em que o
tipo do dado deve ser compatível com o tipo da variável,
isto é, somente podemos atribuir um valor inteiro a uma
variável capaz de comportá-lo, ou seja, uma variável
declarada como sendo do tipo inteiro.

Mais conteúdo relacionado

Mais procurados

Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalWesley R. Bezerra
 
1º introdução a lógica de programação
1º   introdução a lógica de programação1º   introdução a lógica de programação
1º introdução a lógica de programaçãoLucas Mendes
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaFelipe J. R. Vieira
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 

Mais procurados (20)

Lógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicionalLógica de Programação - Estrutura condicional
Lógica de Programação - Estrutura condicional
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
1º introdução a lógica de programação
1º   introdução a lógica de programação1º   introdução a lógica de programação
1º introdução a lógica de programação
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
02 algoritmos
02 algoritmos02 algoritmos
02 algoritmos
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 

Destaque

Cena del día internacional de la mujer trabajadora
Cena del día internacional de la mujer trabajadoraCena del día internacional de la mujer trabajadora
Cena del día internacional de la mujer trabajadoraASPM
 
Presentación Internet
Presentación InternetPresentación Internet
Presentación InternetAna Grandas
 
Gri aec 2012_2013_bd_gri.pdf
Gri aec 2012_2013_bd_gri.pdfGri aec 2012_2013_bd_gri.pdf
Gri aec 2012_2013_bd_gri.pdfInstituto_AEC
 
Inv cualitativa
Inv cualitativaInv cualitativa
Inv cualitativaSonia Gp
 
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCION
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCIONASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCION
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCIONASPM
 
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESO
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESOIMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESO
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESOJorge Gasco
 
Presentación asamblea ASPM
Presentación asamblea ASPMPresentación asamblea ASPM
Presentación asamblea ASPMASPM
 
Prueba unica de periodo valentina zuluaga
Prueba unica de  periodo valentina zuluagaPrueba unica de  periodo valentina zuluaga
Prueba unica de periodo valentina zuluagaValentina Dls
 
Presentacion pintura 2
Presentacion pintura 2Presentacion pintura 2
Presentacion pintura 2Sonia Gp
 
Conferencia Jurídica en el Hotel HUSA PRINCESA
Conferencia Jurídica en el Hotel HUSA PRINCESAConferencia Jurídica en el Hotel HUSA PRINCESA
Conferencia Jurídica en el Hotel HUSA PRINCESAASPM
 

Destaque (20)

Cena del día internacional de la mujer trabajadora
Cena del día internacional de la mujer trabajadoraCena del día internacional de la mujer trabajadora
Cena del día internacional de la mujer trabajadora
 
Presentación Internet
Presentación InternetPresentación Internet
Presentación Internet
 
Los+niños..
Los+niños..Los+niños..
Los+niños..
 
Gri aec 2012_2013_bd_gri.pdf
Gri aec 2012_2013_bd_gri.pdfGri aec 2012_2013_bd_gri.pdf
Gri aec 2012_2013_bd_gri.pdf
 
Teorema de pitagoras
Teorema de pitagorasTeorema de pitagoras
Teorema de pitagoras
 
Inv cualitativa
Inv cualitativaInv cualitativa
Inv cualitativa
 
Product_Guide
Product_GuideProduct_Guide
Product_Guide
 
APRESENTAÇÃO
APRESENTAÇÃOAPRESENTAÇÃO
APRESENTAÇÃO
 
Nourhan
NourhanNourhan
Nourhan
 
IdeUGALILEO
IdeUGALILEO IdeUGALILEO
IdeUGALILEO
 
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCION
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCIONASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCION
ASPM PRESENTACION SOBRE EL TITULO DE TECNICO EN ASISTENCIA A LA DIRECCION
 
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESO
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESOIMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESO
IMPLEMENTACIÓN DE UN ENTORNO DE APRENDIZAJE SOCIAL EN FÍSICA Y QUÍMICA DE 4º ESO
 
Presentación asamblea ASPM
Presentación asamblea ASPMPresentación asamblea ASPM
Presentación asamblea ASPM
 
Ejercicios inconvenientes
Ejercicios inconvenientesEjercicios inconvenientes
Ejercicios inconvenientes
 
Prueba unica de periodo valentina zuluaga
Prueba unica de  periodo valentina zuluagaPrueba unica de  periodo valentina zuluaga
Prueba unica de periodo valentina zuluaga
 
Presentacion pintura 2
Presentacion pintura 2Presentacion pintura 2
Presentacion pintura 2
 
Liberando.la.oficina.con.o oo
Liberando.la.oficina.con.o ooLiberando.la.oficina.con.o oo
Liberando.la.oficina.con.o oo
 
Critérios de validade
Critérios de validadeCritérios de validade
Critérios de validade
 
Conferencia Jurídica en el Hotel HUSA PRINCESA
Conferencia Jurídica en el Hotel HUSA PRINCESAConferencia Jurídica en el Hotel HUSA PRINCESA
Conferencia Jurídica en el Hotel HUSA PRINCESA
 
WDW 2
WDW 2WDW 2
WDW 2
 

Semelhante a 01 logica

Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizandoJoão Gomes
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 

Semelhante a 01 logica (20)

Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Aula02
Aula02Aula02
Aula02
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Aula02
Aula02Aula02
Aula02
 

01 logica

  • 1. 1 Definição de Lógica O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e à racionalidade. Frequentemente se associa lógica apenas à matemática, não se percebendo sua aplicabilidade e sua relação com as demais ciências. Podemos relacionar a lógica com a correção do pensamento, pois uma de suas preocupações é determinar quais operações são válidas e quais não são, fazendo análises das formas e leis do pensamento. Com arte ou técnica, ela nos ensina a usar corretamente as leis do pensamento. Poderíamos dizer também que a lógica é a "arte de bem pensar", que é a "ciência das formas do pensamento". Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda a "correção do raciocínio". Podemos ainda dizer que a lógica tem em vista a "ordem da razão". Isso dá a entender que a nossa razão pode funcionar desordenadamente. Por isso, a lógica estuda e ensina a colocar "ordem no pensamento". Definição de Lógica de Programação Significa o uso correto das leis do pensamento, da "ordem da razão" e de processos de raciocínio e simbolização formais na programação de computadores, objetivando a racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. O raciocínio é algo abstrato, intangível. Os seres humanos têm capacidade de expressá-lo através da palavra falada ou escrita, que por sua vez se baseia em um determinado idioma, que segue uma série de padrões (gramática). Um mesmo raciocínio pode ser expresso em qualquer um dos inúmeros idiomas existentes, mas continuará representando o mesmo raciocínio, usando apenas outra convenção. Algo similar ocorre com a Lógica de Programação, que pode ser concebida pela mente treinada e pode ser representada em qualquer uma das inúmeras linguagens de programação existentes. Essas, por sua vez, são muito atreladas a uma grande diversidade de detalhes computacionais, que pouco têm a ver com o raciocínio original. Para escapar dessa torre de babel e, ao mesmo
  • 2. 2 tempo, representar mais fielmente o raciocínio da lógica de programação, utilizamos os algoritmos. Algoritmos O objetivo principal do estudo da lógica de programação é a construção de algoritmos coerentes e válidos. Mas o que é um algoritmo? Um algoritmo pode ser definido como uma sequencia de passos que visam a atingir um objetivo bem definido. Na medida em que precisamos especificar uma sequencia de passos, é necessário utilizar ordem, ou seja, "pensar com ordem", portanto precisamos utilizar lógica. Apesar do nome pouco usual, algoritmos são comuns em nosso cotidiano, como, por exemplo, uma receita de bolo. Nela está descrita uma série de ingredientes necessários e uma sequencia de diversos passos (ações) que devem ser fielmente cumpridos para que se consiga fazer o alimento desejado, conforme se espera antes do início das atividades (objetivo bem definido). Quando elaboramos um algoritmo, devemos especificar ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzam um estado final previsível e bem definido. Isso significa que o algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, com vistas a alcançar, como resultado final, a solução de um problema, garantindo que sempre que executado, sob as mesmas condições, produza o mesmo resultado. Tipos de Dados Tipo primitivo: São tipos de dados predefinidos pela linguagem e correspondem a dados mais simples ou escalares. Os tipos primitivos utilizados por um computador são numéricos (inteiros ou reais), caracteres e lógicos. Tipo de Dado Inteiro: São caracterizados como tipos inteiros os dados numéricos positivos ou negativos, excluindo-se destes qualquer número fracionário (números do tipo real). Em linguagem C, este tipo de dado pode ser referenciado por um dos seguintes identificadores:
  • 3. 3 Tipo Inteiro Mínimo Máximo int -32.768 32.767 long (int) -2.147.483.648 2.147.483.647 unsigned int 0 65.535 unsigned long (int) 0 4.292.967.295 Tipo de Dado Real: São caracterizados como tipos reais os dados numéricos positivos, negativos e números fracionários e também inteiros. Em linguagem C, este tipo de dado pode ser referenciado por um dos seguintes identificadores: Tipo Inteiro Mínimo Máximo float 3.4 e-38 3.4 e+38 double 1.7 e-308 1.7 e+308 long double 3.4 e-4932 1.1 e+4932 Tipo de Dado Caractere: São caracterizados como tipo caractere letras (a..z, A..Z), números (0..9) e símbolos especiais (! @ # $ % ^...) delimitados entre os símbolos de aspas simples (' '), para as sequencias (Strings) de letras, números e símbolos especiais, utilizamos aspas duplas (" "). Este tipo de dado é referenciado pelo identificador: char, podendo armazenar caracteres da tabela ASCII de 0 até 255. Tipo de Dado Lógico: A Linguagem C não possui um tipo de dado lógico ou booleano, ou seja, não existe valor lógico "Falso" ou "Verdadeiro" para um determinado tipo de dado, de forma predefinida. EM linguagem C qualquer valor igual a 0 (zero) é considerado um valor lógico do tipo falso, e qualquer valor diferente de zero, será considerado um valor lógico verdadeiro. Uso de Variáveis e Constantes Constante: Uma constante é qualquer dado que não sofre alteração ou variação durante a execução de um programa, ou seja, seu valor é constante do início até o fim da execução. Variável: Uma variável representa a unidade básica de armazenamento temporário de dados e é composta por um tipo, um identificador (nome), um tamanho e um valor.
  • 4. 4 O objetivo de uma variável é armazenar um dado de determinado tipo primitivo, podendo ser alterado durante a execução do programa. Exemplo: int notaAluno = 8 Operadores e Expressões Matemáticas Computacionais Operadores Matemáticos: são utilizados para a realização de operações matemáticas com operandos de tipos numéricos, do mesmo modo como são aplicados na álgebra. Operação Função + Adição - Subtração * Multiplicação / Divisão % Módulo (resto da divisão) Geralmente o operador de módulo (%) é menos conhecido do que os operadores de multiplicação e divisão. Este operador retorna o resto de uma divisão. Exemplo: 10 |3 1 3 Em linguagem C, a sintaxe é a seguinte: int a; a = 10 % 3; Comandos de Leitura e Escrita Os programas precisam receber dados provenientes do meio externo para poderem efetuar operações e cálculos necessários a fim de alcançar o resultado desejado. Do mesmo modo, o resultado final deve ser devolvido ao meio externo. Com essa finalidade, utilizamos comandos de entrada e saída. Tipo Nome Valor Tamanho: 4 bytes -32.768 até 32.767 Resto da Divisão
  • 5. 5 Entrada de dados: Para que o programa possa receber dados de que necessita, iremos utilizar a função scanf(), cuja finalidade é efetuar entrada de dados via teclado. A sintaxe desta função se caracteriza por ser uma expressão de controle seguida de uma lista de argumentos separados por vírgula, sendo que seus argumentos são endereços de variáveis. scanf("expressão de controle", "lista de args"); A expressão de controle se caracteriza por conter códigos de formatação para o tipo de dado a ser processado, precedidos pelo sinal de percentagem %. Veja a seguir, a tabela com os códigos de formatação para a função scanf(). Formatação Descrição %c Leitura de apenas um caractere %d Leitura de números inteiros %e Leitura de números em notação científica %f Leitura de números reais (ponto flutuante) %ld Leitura de números inteiros longos %lf Leitura de números reais longos (double) %o Leitura de números octais %s Leitura de um conjunto de caracteres (String) %u Leitura de números decimais sem sinal %x Leitura de números hexadecimais A lista de argumentos é a indicação dos endereços das variáveis em uso, por meio do operador de endereço &, que possibilita retornar o conteúdo da variável. Caso não seja usado o operador de endereço &, será retornado o endereço de memória em que se encontra a variável. Exemplo: #include <stdio.h> int main(int argc, char *argv[]) { int a; float b; char string[64]; printf("Digite um número inteiro: "); scanf("%d", &a); printf("Digite um número em ponto flutuante: "); scanf("%f", &b); printf("Digite uma frase: "); scanf("%s", &string); getch(); }
  • 6. 6 Saída de dados: Para que o programa possa mostrar os dados que processou, como resposta ao problema que resolveu, usaremos a função printf(), cuja finalidade é efetuar a saída de informações no vídeo. A sintaxe desta função é: printf("expressão de controle", "lista de argumentos"); A expressão de controle se caracteriza por conter códigos de formatação para o tipo de dado a ser processado, precedido pelo sinal de percentagem %. Veja abaixo a tabela com os códigos de formatação para a função printf(). Formatação Descrição %c Escrita de apenas um caractere %d Escrita de números inteiros %e Escrita de números em notação científica %f Escrita de números reais (ponto flutuante) %o Escrita de números octais %s Escrita de um conjunto de caracteres (String) %u Escrita de números decimais sem sinal %x Escrita de números hexadecimais Exemplo: #include <stdio.h> int main(int argc, char *argv[]) { int a; float b; char string[64]; printf("Digite um numero inteiro: "); scanf("%d", &a); printf("Digite um numero em ponto flutuante: "); scanf("%f", &b); printf("Digite uma frase: "); scanf("%s", &string); a = a + 10; b = b + 0.5; printf("A variavel a foi acrescida em 10: %dn", a); printf("A variavel b foi acrescida em 0.5: %fn", b); printf("A variavel string recebeu a frase: %sn", string); getch(); }
  • 7. 7 Operadores Relacionais Os operadores relacionais possibilitam comparar valores ou expressões retornando sempre um resultado lógico true (verdadeiro) ou false (falso). Em linguagem C, um resultado lógico false será interpretado como 0 (zero). Já um resultado lógico true será interpretado como algo diferente de 0 (zero). A tabela abaixo resume os operadores relacionais disponíveis na linguagem C. Operador Função == Igual a != Diferente de > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a O programa abaixo exemplifica a utilização destes operadores relacionais para tipos primitivos. #include <stdio.h> int main(int argc, char *argv[]){ int it1 = 10, it2 = 15, it3 = 10, it4 = 15; int b1, b2, b3, b4, b5, b6, b7, b8; b1 = it1 == it2; printf("it1 == it2 eh: %dn", b1); b2 = it1 == it3; printf("it1 == it3 eh: %dn", b2); b3 = it1 != it2; printf("it1 != it2 eh: %dn", b3); b4 = it1 != it3; printf("it1 != it3 eh: %dn", b4); b5 = it2 > it4; printf("it2 > it4 eh: %dn", b5); b6 = it2 >= it4; printf("it2 >= it4 eh: %dn", b6); b7 = it3 < it4; printf("it3 < it4 eh: %dn", b7); b8 = it2 <= it4; printf("it2 <= it4 eh: %dn", b8); getch(); }
  • 8. 8 Saída gerada pela execução do programa acima: it1 == it2 eh: 0 it1 == it3 eh: 1 it1 != it2 eh: 1 it1 != it3 eh: 0 it2 > it4 eh: 0 it2 >= it4 eh: 1 it3 < it4 eh: 1 it2 <= it4 eh: 1 Operadores Lógicos Utilizamos três operadores básicos para a formação de novas proposições lógicas compostas a partir de outras proposições lógicas simples. Os operadores lógicos estão descritos na tabela abaixo. Operador Função não Negação e Conjunção ou Disjunção Tabela Verdade: É o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram em apenas duas situações (V ou F), e um conjunto de operadores lógicos. Construiremos uma tabela verdade com o objetivo de dispor de uma maneira prática os valores lógicos envolvidos em uma expressão lógica. Operação de Negação A não A V F F V Operação de Conjunção A B A e B V V V V F F F V F F F F
  • 9. 9 Operação de Disjunção A B A ou B V V V V F V F V V F F F Operadores Lógicos na Linguagem C Os operadores lógicos são utilizados para construir expressões que retornam um resultado zero (false) ou diferente de zero (true). A linguagem C fornece operadores lógicos que podem ser utilizados para formar condições mais complexas combinando condições simples. A tabela abaixo resume os operadores lógicos disponíveis na linguagem C. Operador Função || ou (or) lógico condicional && e (and) lógico condicional ! negação (not) Operador Lógico condicional E (&&) Para o operador && o operando da direita somente será avaliado se o operando da esquerda for avaliado como verdadeiro. Operador Lógico condicional OU (||) Para o operador || o operando da direita somente será avaliado se o operando da esquerda for avaliado como falso.
  • 10. 10 O programa C abaixo exemplifica a utilização dos operadores lógicos condicionais para tipos primitivos. #include <stdio.h> #include <conio.h> int main(int argc, char *argv[]) { int a = 5, b = 7, c = 10; int b1, b2, b3, b4; b1 = (a > 3) && (b < 8); printf("(a > 3) && (b < 8): %dn", b1); b2 = (a > 3) && (b < 8) || (c < 20); printf("(a > 3) && (b < 8) || (c < 20): %dn", b2); b3 = (a > 3) || (b > 8) && (c < 20); printf("(a > 3) || (b > 8) && (c < 20): %dn", b3); b4 = !(c > 5 || !(b > 10)); printf("!(c > 5 || !(b > 10)): %dn", b4); getch(); } Abaixo temos a saída gerada pelo programa acima: (a > 3) && (b < 8): 1 (a > 3) && (b < 8) || (c < 20): 1 (a > 3) || (b > 8) && (c < 20): 1 !(c > 5 || !(b > 10)): 0 Vamos analisar mais um exemplo da utilização dos operadores lógicos #include <stdio.h> #include <conio.h> int op1(){ printf("Dentro de op1n"); return 0; } int op2(){ printf("Dentro de op2n"); return 1; } int main(int argc, char *argv[]){ printf("==== Testando o operador && =======nn"); if (op1() && op2()) printf("Ambos verdadeirosn"); else printf("Um dos operandos eh falson"); printf("nn==== Testando o operador || =======nn"); if (op1() || op2()) printf("Um dos operandos eh verdadeiron"); else printf("Ambos sao falsosn");
  • 11. 11 getch(); } Comando de Atribuição Um comando de atribuição permite-nos fornecer um valor a uma variável (guardar um valor em uma gaveta), em que o tipo do dado deve ser compatível com o tipo da variável, isto é, somente podemos atribuir um valor inteiro a uma variável capaz de comportá-lo, ou seja, uma variável declarada como sendo do tipo inteiro.