1. conceitos básicos de solução de problemas

Upload: eduardo-nascimento

Post on 06-Jul-2018

225 views

Category:

Documents


1 download

TRANSCRIPT

  • 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/