Download - 1. Conceitos Básicos de Solução de Problemas
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
1/57
PACProf. Fabrício PereiraCEFET-RJ
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
2/57
CONCEITOS BÁSICOS DE
SOLUÇÃO DE PROBLEMAS
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
3/57
SUMÁRIO Sistemas de numeraçãoSistemas computacionaisEstrutura de um computador
Sistemas operacionaisAlgoritmo – IntroduçãoFormas de representação de algoritmos
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
4/57
SISTEMAS DE NUMERAÇÃO
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
5/57
SISTEMAS DE NUMERAÇÃO Como fazer a conversão entre o sistemadecimal e o sistema utilizado numcomputador?
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
6/57
BASE
Base ou raiz de um sistema de numeração:é o número de algarismos distintos usadosnesse sistema de numeração.
Exemplo: o sistema decimal possui base 10,isto é, usa 10 algarismos distintos.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
7/57
NOTAÇÃO POSICIONAL
É o nome dado à notação usada por algunssistemas numéricos, onde cada algarismotem, além do seu valor absoluto , um valorde posição dentro de cada número dessesistema em que ele aparece.Por exemplo, no sistema decimal:
O valor absoluto 2 no número 2000 representauma grandeza diferente do que o 2 em 20 .
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
8/57
SISTEMA DECIMAL OU DE BASE 10
Possui 10 algarismos distintos (algarismosarábicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usanotação posicional.
Ex.:
Obs. : Na notação posicional (qualquer queseja a base) o primeiro algarismo a esquerdada vírgula, representa uma potência da basecom expoente igual a 0 (zero) e esseexpoente inteiro e crescente para aesquerda.
7 = 7 x 10 0
35 = 30 + 5 = 3 x 10 1 + 5 x 10 081,508 = 8 x 10 1 + 1 x 10 0 + 5 x 10 -1+ 0 x 10 -2 + 8 x 10 -3
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
9/57
SISTEMA BINÁRIO OU DE BASE 2
Usa notação posicional e possui doisalgarismos distintos: 0 e 1.
Problema:
Como converter2358 (10) para a base 2?
E 100101 (2) para a base10?
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
10/57
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
11/57
CONVERSÃO DE BASE Conversão da base b (qualquer) para decimal:
Para converter um número na base b paradecimal, basta somar os produtos dos algarismospelas potências da base b que eles representam.
Ex.: Converter os números abaixo para a base 10(10) 16 = 1x16 1 + 0x16 0 = (16) 10 (F30A)16 = 15x16 3 + 3x16 2 + 0x16 1 + 10x16 0 =(62218) 10 (1101) 2 = 1x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = (13) 10 (10001111) 2 = 2 7 + 2 3 + 2 2 + 2 1 + 2 0 = (143) 10
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
12/57
CONVERSÃO DE BASE Conversão de decimal para a base b
(qualquer):Para converter um número decimal para abase b, devem ser feitas divisões inteirassucessivas por b até que se encontrequociente 0 (zero).O número correspondente na base b seráformado pelos restos das divisões, da últimaaté a primeira divisão, nessa ordem.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
13/57
CONVERSÃO DE BASE
Converter o número 45286 (base decimal)para hexadecimal
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
14/57
CONVERSÃO DE BASE
Converter o número 18 (base decimal) parabinário
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
15/57
CONVERSÃO DE BASE
BINÁRIO HEXADECIMALComo 16 é potência de 2 (2 4 = 16), nestaconversão, cada algarismo hexadecimal dáorigem a quatro algarismos binários.
Tabela de conversão :
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
16/57
CONVERSÃO DE BASE
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
17/57
RESUMO
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
18/57
SISTEMAS COMPUTACIONAIS
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
19/57
SISTEMAS COMPUTACIONAIS
Hardware : Corresponde à parte material,aos componentes físicos do sistema. É ocomputador propriamente dito.
Software : Conjunto de programas(instruções arranjadas logicamente) e dados.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
20/57
ESTRUTURA DE UM COMPUTADOR
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
21/57
ESTRUTURA DE UM COMPUTADOR
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
22/57
PROCESSADOR Também chamada de microprocessador ouunidade de processamento central (UPC ouCPU) e é responsável pelo gerenciamento detodas as funções do sistema.
A CPU distingue somente dois estadosfísicos, representados pelos números 0 e 1dígitos binários .É dividida em:
Unidade Aritmética e Lógica : encarregada derealizar operações aritméticas e lógicaselementares.Unidade de Controle : encarregada decoordenar os diversos componentes.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
23/57
MEMÓRIA PRINCIPAL (RAM– RANDOM ACCESS MEMORY)
É a unidade encarregada de armazenar osprogramas e dados ( recebidos das unidades deentrada) para imediato processamento pela CPU.Após a execução de cada instrução do programa,a CPU armazena o resultado gerado na memóriaprincipal.
A memória principal é considerada um meiotemporário de armazenamento de dados, quepermanecem ali somente durante o tempo emque estiverem sendo processados.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
24/57
MEMÓRIA PRINCIPAL CONCEITOS: BIT, BYTE E WORD
Bit ( Binary DigiT - dígito binário)Unidade de Informação, tem somente os valores0 ou 1 ;
Byte ( BinarY TErm - termo binário)Conjunto de 8 bits, com o qual pode-serepresentar os números, as letras, os sinais depontuação, etc...
Palavra (Word)É a quantidade de bits que a CPU processa porvez.Arquiteturas de 32bits e 64bits
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
25/57
MEMÓRIA PRINCIPAL UNIDADES DE MEDIDA
Exemplo: Qual a quantidade exata de bitsque um pen drive de 4 Gb possui?4 Gb = 4 * 2 30 = 4 * 1073741824 =4.294.967.296 bytes* 8 = 34.359.738.368 bits
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
26/57
LINGUAGENS DE PROGRAMAÇÃO Para que um algoritmo possa ser executadopelo computador, é necessário que ele sejaprogramado, isto é, que ele seja transcritopara uma linguagem que o computadorpossa entender, direta ou indiretamente.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
27/57
TRADUTOR Os computadores só podemexecutar diretamente osalgoritmos expressos emlinguagem de máquina(que é um conjunto deinstruções capazes de ativardiretamente os dispositivoseletrônicos do computador).Um tradutor é umprograma que traduz um
algoritmo que está escritoem uma determinadalinguagem de programaçãoem linguagem de máquina.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
28/57
PROCESSO DE TRADUÇÃO O processo de tradução pode ser feito por:
Compilação : Lê, analisa e traduz todos oscomandos do programa fonte, criando oprograma objeto.
Interpretação : Traduz ou interpreta cadacomando ao executá-lo.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
29/57
PRINCIPAIS TIPOS DE LINGUAGEM DE PROGRAMAÇÃO
Linguagem de Máquina ( ou Absoluta ):É a única linguagem que atende ao computador,por satisfazer o seu projeto lógico.Instruções representadas por códigos binários.
Exemplo de instrução:
Esta instrução ordena que o conteúdo doendereço 0A35 16 da memória seja somado (10 16)ao acumulador (registrador especial usado paraacumular resultados) e que o resultado fiqueguardado no acumulador.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
30/57
PRINCIPAIS TIPOS DE LINGUAGEM DE PROGRAMAÇÃO
Linguagem Simbólica (de Baixo Nível, deMontagem ou Assembler):
Surgiu afim de simplificar a difícil programação dalinguagem de máquina.
Substitui os códigos binários por abreviações denomes sugestivos que lembram a função da instrução.Exemplo de instrução: ADD X
ADD ordena que o valor da variável X seja somado aoacumulador e que o resultado fique nele guardado.
X é o nome da variável, criado pelo programador, querepresenta um endereço da memória (por exemplo0A3516) que contém armazenado o valor destavariável. Surgimento do conceito de variável.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
31/57
PRINCIPAIS TIPOS DE LINGUAGEM DE PROGRAMAÇÃO
Linguagem Automática (ou de Alto Nível):São semelhantes às linguagens usadas para descrevero problema que se deseja resolver, ressaltando alinguagem profissional a que o usuário estáacostumado.Existem várias linguagens automáticas: FORTRAN,ALGOL, PLI, APL, BASIC, LISP, SNOBOL, PASCAL,ADA, MODULA, JAVA, PYTHON, etc.
Exemplo de comando: Y = 3 + X;
Ordena que a constante 3 seja somado ao valor davariável X e que o resultado seja armazenado comonovo valor da variável Y.Obs.: Fortran e C são consideradas linguagens demédio nível.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
32/57
SISTEMAS OPERACIONAIS
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
33/57
SISTEMA OPERACIONAL (SO)É um programa especial que controla ecoordena todas as operações básicas de umcomputador.Ele controla a execução de outros programas
e pode proporcionar funções como:controle de entrada e saída de dados;alocação de memória;gerenciamento de dados, etc ...
Os programas que compõem os SOs são, namaioria dos casos, escritos em linguagens denível mais baixo, fazendo com que elessejam mais rápidos e eficientes nogerenciamento de recursos do hardware.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
34/57
ALGORITMOS
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
35/57
ALGORITMO O uso de algoritmos surgiu como uma formade indicar o caminho para a solução dosmais variados problemas.Dado um problema, as principais funções deum programador são:
Entender perfeitamente o problemaEscolher métodos para sua soluçãoDesenvolver um algoritmo baseado nos métodosCodificar o algoritmo na linguagem deprogramação disponível
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
36/57
ALGORITMOS A parte mais importante da tarefa deprogramar é a construção de algoritmos.
Segundo Niklaus Wirth: “Programação é a arte de construir e formularalgoritmos de uma forma sistemática”
“Algoritmos + Estruturas de Dados =Programas”
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
37/57
COMO ESTUDAR ALGORITMOS O aprendizado de algoritmos não seconsegue a não ser através de muitosexercícios.
Algoritmos não se aprendem:Copiando algoritmosEstudando algoritmos
Algoritmos só se aprendem:Construindo algoritmosTestando algoritmos
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
38/57
ALGORITMOS - CONCEITOS Ação : é um evento que ocorre num períodode tempo finito, estabelecendo um efeitointencionado e bem definido. Ex.:
Colocar o livro em cima da mesa;Atribuir o valor 3,1416 em uma variável ;
Observação: toda ação deve ser executávelem um tempo finito (do instante t 0 até oinstante t 1);
O que realmente interessa é o efeito produzidona execução da ação;Pode-se descrever o efeito de uma açãocomparando o estado no instante t 0 com oestado no instante t 1.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
39/57
ALGORITMOS - CONCEITOS Estado de um dado sistema de objetos é oconjunto de propriedades desses objetos quesão relevantes em uma situaçãoconsiderada.
Ex.:Livro na estante ou sobre a mesa;Conjunto de valores das variáveis do programanum certo instante da execução;
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
40/57
ALGORITMOS - CONCEITOS Processo : é um evento considerado comouma sequência temporal de (sub) ações,cujo efeito total é igual ao efeito acumuladodessas (sub) ações.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
41/57
ALGORITMOS - CONCEITOS Padrão de Comportamento : em todo oevento pode-se reconhecer um padrão decomportamento, isto é, cada vez que opadrão de comportamento é seguido, oevento ocorre.Ex.: seja a seguinte descrição de uma dona-de-casa descasca as batatas para o jantar:
traz a cesta com batatas do porão;
traz a panela do armário;descasca as batatas;devolve a cesta ao porão;
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
42/57
ALGORITMOS - CONCEITOS Essa descrição pode ser usada paradescrever eventos distintos (dias diferentes,batatas diferentes etc.).Isso só é possível porque os eventospossuem o mesmo padrão decomportamento.O efeito de um evento fica totalmentedeterminado pelo padrão de comportamentoe eventualmente pelo estado inicial.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
43/57
ALGORITMOS - CONCEITOS Algoritmo : é a descrição de um padrão decomportamento, expressado em termos de umrepertório bem definido e finito de açõesprimitivas que, com certeza, podem serexecutadas.Um algoritmo possui caráter imperativo , razãopela qual uma ação em um algoritmo é chamadade comando .Ex.: algoritmo para descascar batatas para o
jantar:traga a cesta com batatas do porão;traga a panela do armário;descasque as batatas;devolva a cesta ao porão;
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
44/57
ALGORITMOS - CONCEITOS Um algoritmo (ou programa) apresenta doisaspectos complementares :
Aspecto estático : é a representação concretado algoritmo através de um texto contendo
comandos que devem ser executados numaordem prescrita (atemporal).Aspecto dinâmico : que é a execução doalgoritmo no tempo.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
45/57
ALGORITMOS - CONCEITOS A generalização do algoritmo para descascar batatas
para o jantar pode ser: “traga a cesta com batatas do porão”; “traga a panela do armário”; se “a roupa é clara” então “coloque avental”; enquanto “número de batatas é insuficiente”
faça “descasque uma batata”; “devolva a cesta ao porão”;
Um algoritmo deve ser determinístico , isto é, dadasas mesmas condições iniciais, deve produzir em suaexecução, os mesmos resultados.Só interessam os algoritmos executáveis em tempofinito.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
46/57
ALGORITMOS – FORMAS DE REPRESENTAÇÃO
Dentre as formas de representação dealgoritmos mais conhecidas, sobressaltam:
Descrição NarrativaFluxograma ConvencionalPseudolinguagem
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
47/57
DESCRIÇÃO NARRATIVA Nesta forma de representação os algoritmos sãoexpressos diretamente em linguagem natural .Como por exemplo, têm-se os algoritmosseguintes:
Troca de um pneu furado:Afrouxar ligeiramente as porcasSuspender o carro
Retirar as porcas e o pneuColocar o pneu reservaApertar as porcasAbaixar o carroDar o aperto final nas porcas
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
48/57
DESCRIÇÃO NARRATIVA Cálculo da média de um aluno:
Obter as notas da primeira e da segunda provaCalcular a média aritmética entre as duasSe a média for maior ou igual a 7, o aluno foiaprovado, senão ele foi reprovado.
Obs: Esta representação é pouco usada naprática porque o uso de linguagem naturalmuitas vezes dá oportunidade a másinterpretações, ambiguidades e imprecisões.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
49/57
FLUXOGRAMA Representação gráfica de algoritmos ondeformas geométricas diferentes implicamações (instruções, comandos) distintos.Tal propriedade facilita o entendimento dasideias contidas nos algoritmos.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
50/57
FLUXOGRAMA Principais formas geométricas usadas emfluxogramas.
= Início e final do fluxograma
= Operação de entrada de dados
= Operação de saída de dados em impressora
= Operação de saída de dados em vídeo
= Operações de atribuição
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
51/57
FLUXOGRAMA Principais formas geométricas usadas emfluxogramas.
= Decisão
= Seta do fluxo de dados
= Conector utilizado quando é precisoparticionar o diagrama, colocando uma letraou número no símbolo para identificar ospares da conexão
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
52/57
FLUXOGRAMA A figura a seguir mostra arepresentação do algoritmo decálculo da média de um alunosob a forma de umfluxograma.
Início
N1, N2
Média:=(N1+N2)/2
Média>=7 “Aprovado”
“Reprovado” Fim
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
53/57
PSEUDOLINGUAGEM Esta forma de representação de algoritmos,também conhecida como pseudocódigo ,português estruturado ou portugol , ébastante rica em detalhes e, por assemelhar-sebastante à forma em que os programas sãoescritos, encontra muita aceitação, sendoportanto a forma de representação dealgoritmos que será adotada nesta disciplina.
Esta representação é suficientemente geralpara permitir que a tradução de um algoritmonela representado para uma linguagem deprogramação específica seja praticamentedireta.
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
54/57
PSEUDOLINGUAGEM Representação de um Algoritmo na Forma dePseudolinguagem:
principal{
}
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
55/57
PSEUDOLINGUAGEM A seguir é mostrado a representação doalgoritmo de cálculo da média de um aluno naforma de um pseudocódigo principal
{real n1, n2, media;leia(n1, n2);
media (n1 + n2)/2;se (media >= 7){
imprima (“Aprovado”); }senão{
imprima (“Reprovado”); }
}
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
56/57
PRÓXIMA AULA Construção de programas em C
VariáveisTipos de dadosEntrada e saída de dados...
WindowsDev-C++Code::Blocks
LinuxCode::Blocks
-
8/16/2019 1. Conceitos Básicos de Solução de Problemas
57/57
PRÓXIMA AULA P/ instalar Dev-C++
http://sourceforge.net/projects/dev-cpp/files/Binaries/
devcpp-4.9.9.2_setup.exehttp://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/
Dev-Cpp 5.7.1 TDM-GCC x64 4.8.1 Setup.exeDev-Cpp 5.7.1 MinGW 4.8.1 Setup.exe
P/ instalar Code::Blockshttp://www.codeblocks.org/ linux: sudo apt-get install codeblocks
Querendo se profissionalizar, podem usar:Eclipse / NetBeans
http://www.codeblocks.org/http://www.codeblocks.org/