Baixe o app para aproveitar ainda mais
Prévia do material em texto
8/18/2014 1 CCE0067 – LÓGICA DE PROGRAMAÇÃO Prof. Joelio Piraciaba joelio@edu.estacio.br CAMPOS DOS GOYTACAZES Campos dos Goytacazes, 28 de julho de 2014 APRESENTAÇÃO DA DISCIPLINA E HISTÓRICO DA COMPUTAÇÃOA U LA 1 2ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 3 Historicamente a Engenharia exerceu forte influência no desenvolvimento da informática, tanto na área numérica para solução de problemas científicos, como na parte gráfica, pressionando o desenvolvimento de recursos que mais tarde geraram os sistemas operacionais com interface gráfica interativa, responsáveis diretos pela popularização do computador. PLANO DE ENSINO Contextualização ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 4 Ainda hoje as disciplinas de informática são fundamentais nos modernos cursos de Engenharia, pois muitos programas de computadores são fundamentais em todas as etapas de um empreendimento de Engenharia, elas utilizam conhecimentos específicos de uma determinada especialização da Engenharia. Para se criar uma solução automatizada de um processo específico é fundamental o domínio do conhecimento envolvido, tornando fundamental a presença de engenheiros nas equipes de desenvolvimento de software para a Engenharia. PLANO DE ENSINO Contextualização ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 5 Espera-se que apenas um pequeno percentual de egressos se envolvam neste tipo de atividade. No entanto, a capacidade desenvolvida na análise e organização da solução dos problemas já é suficiente para dimensionar a importância do estudo desta disciplina no contexto do curso. PLANO DE ENSINO Contextualização ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 6 Organização de Computadores; Lógica de programação; Algoritmos e formas de representação; Linguagens de programação; Estrutura sequencial; Modularização; Estruturas de tomada de decisão; Estruturas de repetição. PLANO DE ENSINO Ementa ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 2 7 Capacitar o aluno a analisar problemas simples de engenharia e utilizar os recursos da lógica de programação na construção de soluções automatizadas. PLANO DE ENSINO Objetivos gerais ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8 Capacitar o aluno na análise de problemas simples de engenharia; Capacitar o aluno na criação de algoritmos que representem a solução de problemas; Entender os recursos da lógica de programação; Capacitar o aluno em um ambiente de programação para tornar possível a implementação de seus algoritmos. PLANO DE ENSINO Objetivos específicos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 9 Unidade I – INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO Histórico Organização de Computadores Lógica de programação Algoritmos e formas de representação Fluxograma Português estruturado Linguagens de programação PLANO DE ENSINO Conteúdo ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 10 Unidade II – ESTRUTURA SEQUENCIAL Análise dos problemas Algoritmos Recursos para composição dos blocos lógicos Memória Dados: tipos, constantes e variáveis Expressões aritméticas Atribuição de valores Entrada de dados Saída de dados Comentários Recursos para desenvolvimento de programas Ambiente de programação Estrutura básica de um programa Recursos da linguagem de programação Desenvolvimento de programas para problemas sequenciais PLANO DE ENSINO Conteúdo ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 11 Unidade III – MODULARIZAÇÃO Decomposição em módulos: funções e procedimentos Funções pré-definidas pela linguagem de programação Construção de funções Escopo de variáveis Tipo Passagem de parâmetros Desenvolvimento de programas com utilização de funções PLANO DE ENSINO Conteúdo ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 12 Unidade IV – ESTRUTURAS DE TOMADA DE DECISÃO Análise dos problemas Criação de Algoritmos Recursos lógicos Estrutura de seleção simples Estrutura de seleção composta Estruturas de seleção aninhadas Estrutura de múltipla escolha Recursos da linguagem de programação Desenvolvimento de programas e funções com tomadas de decisão PLANO DE ENSINO Conteúdo ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 3 13 Unidade V – ESTRUTURAS DE REPETIÇÃO Análise dos problemas Criação de Algoritmos Recursos lógicos Repetição com teste no início Repetição com teste no final Repetição com variável de controle Recursos da linguagem de programação Desenvolvimento de programas e funções com tomadas de decisão e repetição PLANO DE ENSINO Conteúdo ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 14 Nome do Livro: Fundamentos da programação de Computadores. Autor: ASCENCIO. A. F. Gomes; CAMPOS, E. A. Veneruchi de Editora: Pearson Prentice Hall 2ª edição São Paulo, 2007 Capítulos 1(10 páginas), 2 (4 páginas), 3 (34 páginas), 4 (43 páginas) 5 (52 páginas) PLANO DE ENSINO Indicação do material didático ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 15 PLANO DE ENSINO Mapa conceitual ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 16 O processo de avaliação oficial será composto de três etapas, Avaliação 1 (AV1), Avaliação 2 (AV2) e Avaliação 3 (AV3). A AV1 contemplará o conteúdo da disciplina até a sua realização. As AV2 e AV3 serão nacionalizadas e abrangerão todo o conteúdo da disciplina. PLANO DE ENSINO Procedimentos de avaliação ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 17 Para aprovação na disciplina o aluno deverá: Atingir resultado igual ou superior a 6,0, calculado a partir da média aritmética entre os graus das avaliações, sendo consideradas apenas as duas maiores notas obtidas dentre as três etapas de avaliação (AV1, AV2 e AV3). A média aritmética obtida será o grau final do aluno na disciplina; Obter grau igual ou superior a 4,0 em, pelo menos, duas das três avaliações; Frequentar, no mínimo, 75% das aulas ministradas. PLANO DE ENSINO Procedimentos de avaliação ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 18 ASCENCIO. A. F. Gomes; CAMPOS, E. A. Veneruchi de; Fundamentos da programação de Computadores, 2ed., São Paulo: Pearson Prentice Hall, 2007 FARRER, Harry et al. Algoritmos estruturados. 3. ed. Rio de Janeiro: LTC, 2008. MANZANO, José Augusto Navarro Garcia; OLIVEIRA, Jayr Figueiredo de Algoritmos: lógica para desenvolvimento de programação de computadores. 17. ed. São Paulo: Érica, 2005. PLANO DE ENSINO Bibliografia Básica ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 4 19 PLANEJAMENTO DE AULA Segunda-feira ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 28/07 Apresentação da disciplina 04/08 Organização de computadores 11/08 Introdução à Lógica de Programação 18/08 Estrutura Sequencial –Cap. 3 25/08 Estrutura Sequencial –Cap. 3 01/09 Estruturas de Tomada de Decisão - Cap. 4 08/09 Estruturas de Tomada de Decisão - Cap. 4 15/09 Estruturas de Tomada de Decisão - Cap. 4 22/09 Estruturas de Tomada de Decisão - Cap. 4 29/09 AV1 06/10 Correção da AV1 E Estruturas de Repetição –Cap. 5 13/10 Estruturas de Repetição –Cap. 5 20/10 Estruturas de Repetição –Cap. 5 27/10 Estruturas de Repetição –Cap. 5 03/11 Estruturas de Repetição –Cap. 5 10/11 Modularização 17/11 Exercícios 24/11 Dúvidas 01/12 AV2 08/12Correção da AV2 15/12 AV3 20 PLANEJAMENTO DE AULA Terça-feira ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 29/07 Apresentação da disciplina 05/08 Organização de computadores 12/08 Introdução à Lógica de Programação 19/08 Estrutura Sequencial –Cap. 3 26/08 Estrutura Sequencial –Cap. 3 02/09 Estruturas de Tomada de Decisão - Cap. 4 09/09 Estruturas de Tomada de Decisão - Cap. 4 16/09 Estruturas de Tomada de Decisão - Cap. 4 23/09 Estruturas de Tomada de Decisão - Cap. 4 30/09 AV1 07/10 Correção da AV1 E Estruturas de Repetição –Cap. 5 14/10 Estruturas de Repetição –Cap. 5 21/10 Estruturas de Repetição –Cap. 5 28/10 Estruturas de Repetição –Cap. 5 04/11 Estruturas de Repetição –Cap. 5 11/11 Modularização 18/11 Dúvidas 25/11 AV2 02/12 Entrega e Correção da AV2 09/12 AV3 21 PLANEJAMENTO DE AULA Quarta-feira ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 30/07 Apresentação da disciplina 06/08 FERIADO 13/08 Organização de computadores 20/08 Introdução à Lógica de Programação 27/08 Estrutura Sequencial –Cap. 3 03/09 Estrutura Sequencial –Cap. 3 10/09 Estruturas de Tomada de Decisão - Cap. 4 17/09 Estruturas de Tomada de Decisão - Cap. 4 24/09 Estruturas de Tomada de Decisão - Cap. 4 01/10 AV1 08/10 Correção da AV1 E Estruturas de Repetição –Cap. 5 15/10 FERIADO 22/10 Estruturas de Repetição –Cap. 5 29/10 Estruturas de Repetição –Cap. 5 05/11 Estruturas de Repetição –Cap. 5 12/11 Modularização 19/11 Dúvidas 26/11 AV2 03/12 Entrega e Correção da AV2 10/12 AV3 22 PLANEJAMENTO DE AULA Quinta-feira ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 31/07 Apresentação da disciplina 07/08 Organização de computadores 14/08 Introdução à Lógica de Programação 21/08 Estrutura Sequencial –Cap. 3 28/08 Estrutura Sequencial –Cap. 3 04/09 Estruturas de Tomada de Decisão - Cap. 4 11/09 Estruturas de Tomada de Decisão - Cap. 4 18/09 Estruturas de Tomada de Decisão - Cap. 4 25/09 AV1 02/10 Correção da AV1 E Estruturas de Repetição –Cap. 5 09/10 Estruturas de Repetição –Cap. 5 16/10 Estruturas de Repetição –Cap. 5 23/10 Estruturas de Repetição –Cap. 5 30/10 Estruturas de Repetição –Cap. 5 06/11 Modularização 13/11 Exercícios 20/11 Dúvidas 27/11 AV2 04/12 Entrega e Correção da AV2 11/12 AV3 23 PLANEJAMENTO DE AULA Sexta-feira ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 25/06 Apresentação da disciplina 01/08 Organização de computadores 08/08 Introdução à Lógica de Programação 15/08 Estrutura Sequencial –Cap. 3 22/08 Estrutura Sequencial –Cap. 3 29/08 Estruturas de Tomada de Decisão - Cap. 4 05/09 Estruturas de Tomada de Decisão - Cap. 4 12/09 Estruturas de Tomada de Decisão - Cap. 4 19/09 Estruturas de Tomada de Decisão - Cap. 4 26/09 AV1 03/10 Correção da AV1 E Estruturas de Repetição –Cap. 5 10/10 Estruturas de Repetição –Cap. 5 17/10 Estruturas de Repetição –Cap. 5 24/10 Estruturas de Repetição –Cap. 5 31/10 Estruturas de Repetição –Cap. 5 07/11 Modularização 14/11 Exercícios 21/11 Dúvidas 28/11 AV2 05/12 Entrega e Correção da AV2 12/12 AV3 HISTÓRICO DA COMPUTAÇÃO Filme 24ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 5 HISTÓRICO DA COMPUTAÇÃO Filme 25ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba HISTÓRICO DA COMPUTAÇÃO Filme 26ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 27 HISTÓRICO DA COMPUTAÇÃO Filme ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 28 HISTÓRICO DA COMPUTAÇÃO Filme ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba ORGANIZAÇÃO DE COMPUTADORES A U LA 2 29ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 30 Informática - É o ramo de conhecimento que cuida dos conceitos, procedimentos e técnicas referentes ao processamento ou tratamento de conjuntos de dados. Computador - Máquina à base de circuitos eletrônicos que efetua grandes operações e cálculos gerais de maneira ultrarrápida. Dados - Toda e qualquer informação ou fato que chega para ser processada. Exemplos : Nome de um funcionário, número de horas trabalhadas em um mês , número de peças em estoque, etc. Informação - é o conjunto de dados processados pelo computador. ORGANIZAÇÃO DE COMPUTADORES Conceitos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 6 31 Software - são os programas que utilizamos para um computador funcionar. (Tendo como principal característica de instruir a maquina. Hardware - é todo o equipamento do computador, ou seja, impressora, o winchester (HD) e etc. Processamento de dados - é todo ato de realizar e conferir o processo de transformação de dados, com o objetivo de se obter resultados através de dados iniciais. ORGANIZAÇÃO DE COMPUTADORES Conceitos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 32 Os computadores são organizados por uma composição de hardware que comunicam entre si trocando mensagens. Os hardwares são considerados como componentes ou periféricos. ORGANIZAÇÃO DE COMPUTADORES Conceitos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 33 Componentes de um computador. MotherBoard (Placa Mãe) - Componente de organização. Faz a distribuição da informação entre os outros componentes. Todos os demais componentes, devem ser diretamente conectados a placa mãe. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 34 Exemplo de Motherboard. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 35 Componentes de um computador. Memória Principal RAM - Armazena as informações utilizadas no momento. Também chamamos de memória de trabalho. Memória Principal ROM - Armazena informações sobre o funcionamento da máquina. Memória Cache – Armazena as últimas instruções que foram executadas. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 36 Exemplos de Memória RAM ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 7 37 Componentes de um computador. Memória Secundária Hard Disk - Armazena as informações de forma permanente para serem reutilizadas. O HD é apenas uma unidade de armazenamento e não de trabalho como a RAM. O HD armazena e identifica as informações por magnetismo, movendo cada bit para esquerda ou direita, ou ainda, para cima ou para baixo. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 38 Exemplo de um Hard Disk. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 39 Componentes de um computador. Memória Secundária CD-ROM - Mídia óptica utilizada para armazenar informações com a facilidade de locomoção entre uma máquina e outra. O CD-ROM utiliza a técnica do laser para gravar e identificar os bits. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 40 Componentes de um computador. Processador - Considerado como o cérebro do computador, tem a função de executar todos os cálculos responsáveis pelo processamento. O processador, também chamado de CPU – Unidade Central de Processamento, divide-se em unidade de controle e unidade lógica e aritmética. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 41 Componentes de um computador. Unidade de Controle - É responsável pelo “tráfico” dos dados, interpretandoas requisições de entrada e encaminhando o resultado do processamento. ULA (Unidade Lógica e Aritmética) - Onde realmente são executados os cálculos aritméticos, comparações lógicas e qualquer manipulação de dados. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 42 Exemplo de um processador. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 8 43 A velocidade que um processador pode executar as suas operações é medida em Hertz. Logo quanto maior for a quantidade de hertz que o processador trabalhe menor será o seu tempo de resposta. Obviamente quanto maior a velocidade do ciclo, mais calor irá gerar o circuito. Atualmente a velocidade dos processadores encontra-se medida em Gigahertz ou GHz. ORGANIZAÇÃO DE COMPUTADORES Componentes ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 44 Tabela ASCII ORGANIZAÇÃO DE COMPUTADORES Representação dos Dados ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 45 Conversão do caractere A para binário ORGANIZAÇÃO DE COMPUTADORES Representação dos Dados ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 46 A unidade de representação do computador é o bit (0 ou 1) e para representar a quantidade de bits que uma memória pode armazenar usaremos as grandezas físicas. 8 bits = 1 Byte (1 caractere) 1 KByte (Quilo Byte) = 1024 Bytes 1 MByte (Mega Byte) = 1024 KBytes 1 GByte (Giga Byte) = 1024 MBytes 1 TByte (Tera Byte) = 1024 GBytes ORGANIZAÇÃO DE COMPUTADORES Exercício ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 47 Uma página de um livro possui 50 linhas e pode-se digitar 80 caracteres em cada linha. Cada caractere corresponde a 8 bits no sistema binário utilizado. Nessa situação, se o livro contiver 300 páginas de texto terá, aproximadamente, o seguinte valor: 4 KBytes 1,2 MBytes 3,2 MBytes 4.000 Bytes 12.000 Bytes ORGANIZAÇÃO DE COMPUTADORES Exercício ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 48 Exercício (Solução) 50 linhas X 80 caracteres = 4.000 caracteres (bytes) 4.000 bytes por página X 300 páginas = 1.200.000 bytes ao total 1.200.000 / 1024 = 1.171,875 KBytes 1.171,875 / 1024 = 1,1444091796875 MBytes ORGANIZAÇÃO DE COMPUTADORES Exercício ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 9 49 Periféricos de um computador. São hardwares adicionais para auxiliar o usuário a trocar informações com o computador, ou seja, executar a entrada e/ou saída de informações. ORGANIZAÇÃO DE COMPUTADORES Periféricos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 50 Periféricos de entrada. Teclado Mouse Microfone Scanner ORGANIZAÇÃO DE COMPUTADORES Periféricos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 51 Periféricos de saída. Monitor Impressora Caixa de Som ORGANIZAÇÃO DE COMPUTADORES Periféricos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 52 ORGANIZAÇÃO DE COMPUTADORES Processamento de Dados ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃOA U LA 3 53ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 54 Lógica trata da correção do pensamento Poderíamos dizer também que a Lógica é a arte de pensar corretamente e, visto que a forma mais complexa do pensamento é o raciocínio, a Lógica estuda ou tem em vista a correção do raciocínio. Isso dá a entender que a nossa razão pode funcionar desordenadamente, pode pôr as coisas de pernas para o ar. Por isso a Lógica ensina a colocar Ordem no Pensamento NOÇÕES DE LÓGICA ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 10 55 Exemplo A: Todo o mamífero é animal. Todo cavalo é mamífero. Portanto, todo cavalo é ___________. Exemplo B: Todo mamífero bebe leite. O homem é mamífero. Portanto, todo homem é ________e_________. NOÇÕES DE LÓGICA ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 56 Sempre que pensamos, o raciocínio e a lógica nos acompanham necessariamente. Daí percebemos a importância da Lógica na nossa vida não só na teoria, como também na prática, já que quando queremos pensar, falar ou escrever corretamente precisamos colocar em Ordem o Pensamento, isto é, utilizar a Lógica EXISTE LÓGICA NO DIA A DIA? ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 57 Exemplos: A gaveta está fechada A bala está na gaveta Preciso primeiro abrir a gaveta, para depois pegar a bala. João é mais velho que José Marcelo é mais novo que José Portanto, __________________________ EXISTE LÓGICA NO DIA A DIA? ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 58 Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em três hastes (a – b – c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 – 2 – 3 ), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre o menor. O objetivo é transferir os três discos para outra haste. TORRE DE HANÓI ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 1 2 3 a b c http://www.prof2000.pt/users/pjca/jogos_ficheiros/hanoi/torre%20de%20hanoi.html 59 Três jesuítas e três canibais precisam atravessar um rio; para tanto dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Elabore uma sequência de passos indicando as ações necessárias para que a travessia seja feita de forma segura. TRÊS JESUITAS E TRÊS CANIBAIS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba http://www.mdig.com.br/index.php?itemid=765 60 O conceito central da programação e da ciência da computação é o de algoritmos. Programar é basicamente construir algoritmos. Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações “primitivas”, das quais damos por certo que elas podem ser executadas. ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 11 61 "Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido." (FORBELLONE, 1999) "Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa." (ASCENCIO, 1999) "Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância." (SALVETTI, 1999) "Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas." (MANZANO, 1997) "Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações." (FARRER, 1999). ALGORITMOS (Conceitos) ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 62 Outro conceito de Algoritmo é, formalmente, uma sequência finita de passos que levam a execução de uma tarefa, ou seja, a atingir um objetivo. Nesta pequena definição de algoritmo deve-se notar a existência de três ideias básicas: Sequência: uma ordem de execução das instruções; Finita: a sequênciade passos a serem executados deve ser finita; e Objetivo: um algoritmo é desenvolvido para se atingir um determinado objetivo. ALGORITMOS (Conceitos) ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 63 Exemplo de algoritmo sequencial “traga a cesta com batatas do porão”; “traga a panela do armário”; “descasque as batatas”; “devolva a cesta ao porão”; EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 64 Exemplo de algoritmo com condição simples “traga a cesta com batatas do porão”; “traga a panela do armário”; “Se saia é clara” Então “coloque avental”; “descasque as batatas”; “devolva a cesta ao porão”; EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 65 Exemplo simples de algoritmo com repetição “traga a cesta com batatas do porão”; “traga a panela do armário”; “descasque uma batata”; “descasque uma batata”; … “descasque uma batata”; “devolva a cesta ao porão”; EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 13 V ez es 66 Somar três números Receber os três números. Somar os três números. Mostrar o resultado obtido. EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 12 67 Fazer um sanduíche (outro exemplo) Pegar o pão. Cortar o pão ao meio. Pegar a maionese. Passar a maionese no pão. Pegar e cortar alface e tomate. Colocar alface e tomate no pão Pegar o hambúrguer. Fritar o hambúrguer. Colocar o hambúrguer no pão. EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 68 Trocar a Lâmpada Pegar uma lâmpada nova. Pegar uma escada. Posicionar a escada embaixo da lâmpada queimada Subir na escada com a lâmpada nova na mão. Retirar a lâmpada queimada. Colocar a lâmpada nova. Descer da escada. Testar o interruptor. Guardar a escada. Jogar a lâmpada velha no lixo. EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 69 Ir para Escola Acordar cedo. Ir ao banheiro. Abrir o armário para escolher uma roupa. Se o tempo estiver quente então pegar uma camiseta e uma calça jeans; caso contrário, pegar um agasalho e uma calça jeans. Vestir a roupa escolhida. Tomar café. Pegar uma condução. Descer próximo à escola. EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 70 Sacar dinheiro do banco 24 horas Ir até o banco 24 horas. Colocar o cartão. Digitar a senha Solicitar a quantia desejada. Se o saldo for maior ou igual à quantia desejada então sacar; caso contrário, mostrar mensagem de impossibilidade de saque. Retirar o cartão. Sair do banco 24 horas. EXEMPLOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 71 Compreender completamente o problema a ser resolvido, destacando os pontos mais importantes (“verbos”) e os objetos que o compõem. Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais objetos fazem parte desse cenário-problema. Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída. Além disso, deve-se verificar quais objetos são responsáveis pelas atividades. Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento. Construir o algoritmo utilizando um dos tipos descritos na próxima seção. Testar o algoritmo realizando simulações. PASSOS PARA CONSTRUÇÃO DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 72 Fluxograma Pseudocódigo ou Portugol TIPOS DE ALGORITMOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 13 73 Fluxograma consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos pré- definidos, os passos a serem seguidos para sua resolução. Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de textos. Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição para um programa. Pseudocódigo ou Portugol FLUXOGRAMA ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 74 FLUXOGRAMA ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 75 O pseudocódigo ou portugol consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas. Desvantagem: é necessário aprender as regras do pseudocódigo. PSEUDOCÓDIGO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 76 Algoritmo para multiplicar dois números EXEMPLO DE ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Narrativa 1. Receber dois números que serão multiplicados. 2. Multiplicar os números. 3. Mostrar o resultado obtido na multiplicação. Fluxograma Pseudocódigo ALGORITMO DECLARE N1, N2, M NUMERICO ESCREVA “DIGITE DOIS NUMEROS” LEIA N1, N2 M N1*N2 ESCREVA “MULTIPLICAÇÃO=“, M FIM_ALGORITMO 77 Algoritmo para dividir dois números EXEMPLO DE ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Narrativa 1. Receber dois números que serão divididos. 2. Se o segundo número for igual a zero, então não poderá ser feita a divisão, pois não existe divisão por zero; caso contrário, dividir os números e mostrar o resultado da divisão. Fluxograma Pseudocódigo ALGORITMO DECLARE N1, N2, D NUMÉRICO ESCREVA "Digite dois números" LEIA N1, N2 SE N2 = 0 ENTÃO ESCREVA "Impossível dividir“ SENÃO INÍCIO D N1/N2 ESCREVA "Divisão = “, D FIM FIM_ALG0RITM0. 78 Algoritmo para calcular a média e mostrar a situação EXEMPLO DE ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Narrativa 1. Receber as duas notas. 2. Calcular a média aritmética. 3. Mostrar a média aritmética. 4. Se a média aritmética for maior ou igual a 7, então a situação do aluno é aprovado; caso contrário, a situação é reprovado. Fluxograma Pseudocódigo ALGORITMO DECLARE N1, N2, M NUMÉRICO ESCREVA "Digite as duas notas” LEIA N1, N2 M (N1 + N2) /2 ESCREVA "Média = ",M SE M >= 7 ENTÃO ESCREVA "Aprovado" SENÃO ESCREVA "Reprovado" FIM ALGORITMO. 8/18/2014 14 79 Algoritmo para calcular o salário. Sabe-se que os funcionários que recebem até R$500,00 terão aumento de 20% os demais terão aumento de 10% EXEMPLO DE ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Narrativa 1. Receber o salário atual do funcionário. 2. Se o salário atual do funcionário for de até R$ 500, calcular o novo salário com percentual de aumento de 20%; caso contrário, calcular o novo salário com percentual de aumento de 10%. 3. Mostrar o novo salário. Fluxograma Pseudocódigo ALGORITMO DECLARE SAL_ATUAL, NOVO_SAL NUMÉRICO ESCREVA "Digite o salário atual do funcionário" LEIA SAL_ATUAL SE SAL_ATUAL ≤ 500 ENTÃO NOVO_SAL SAL_ATUAL * 1,2 0 . SENÃO N0V0_SAL SAL_ATUAL * 1,10 ESCREVA "Novo salário = ",N0V0_SAL FIM_ALGORITMO. 80 Em relação a algoritmos: I. É uma sequência lógica de instruções que devem ser seguidas para a resolução de um problema ou paraexecução de uma tarefa II. Os algoritmos não podem ser utilizados na área das ciências cognitivas devido a sua interpretação ambígua III. Os algoritmos podem construir uma parte importante da documentação de sistemas, pois descrevem as tarefas a serem realizadas pelos programas Dadas a sentenças, podemos afirmar que: a) As afirmativas I e II são verdadeiras b) As afirmativas II e III são falsas c) As afirmativas I e III são falsas d) As afirmativas I e II são falsas e) As afirmativas I e III são verdadeiras EXERCÍCIO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba ESTRUTURA SEQUENCIAL A U LA 4 e 5 81ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 82 Linguagem de programação é um método padronizado para expressar instruções para um computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. LINGUAGEM ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 83 As etapas para o desenvolvimento de um programa são: Análise - Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída. Algoritmo - Ferramentas do tipo descrição narrativa, fluxograma ou português estruturado são utilizadas para descrever o problema com suas soluções. Codificação - O algoritmo é transformado em códigos; da linguagem de programação escolhida para se trabalhar. Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação (ASCENCIO, 1999). CONCEITOS BÁSICOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 84 A linguagem C foi o primeiro a implementá-la usando um computador DEC PDP-11, que utilizava o sistema operacional Unix. O marco inicial foi uma linguagem chamada BCPL, desenvolvida por Martin Richards, que teve forte influência em uma linguagem denominada B, inventada por Ken Thompson. Na década de 1970, B levou ao desenvolvimento de C. Várias implementações de C foram criadas, gerando, assim, muitas discrepâncias. Para resolver tal situação, o ANSI (American National Standards Institute) . A linguagem C++ é uma extensão da linguagem C. Os incrementos encontrados na linguagem C++ foram feitos para dar suporte à programação orientada a objetos. A sintaxe dessa linguagem é basicamente a mesma da linguagem C. LINGUAGEM C/C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 15 85 Um algoritmo e, posteriormente, um programa, recebem dados, que precisam ser armazenados no computador para serem utilizados no processamento. Esse armazenamento é feito na memória. Todos os computadores trabalham com sistema numérico binário. Neste sistema, os dados são transformados em 0 e 1 ('zeros' e 'uns') para, então, serem armazenados na memória. Cada dígito binário (0 ou 1) ocupa porções de memória chamadas bytes (8 bits), e cada byte é identificado e acessado por meio de um endereço. CONCEITO DE VARIÁVEL ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 86 Todos os caracteres existentes possuem um correspondente numérico na tabela ASCII, que é transformado em caractere binário pelo método da divisão para, então, ser armazenado na memória. Desta maneira, uma variável representa uma posição de memória. Possui nome e tipo e seu conteúdo pode variar ao longo do tempo, durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. CONCEITO DE VARIÁVEL ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 87 Todo computador possui uma tabela de alocação que contém o nome da variável, seu tipo (para saber quantos bytes ocupará) e seu endereço inicial de armazenamento. Dessa maneira, quando queremos buscar algum dado na memória, basta sabermos o nome da variável que o computador, por meio da tabela de alocação, busca automaticamente. CONCEITO DE VARIÁVEL ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 88 Os tipos de dados mais utilizados são: Numéricos; Lógicos; Literais ou caracteres. TIPOS DE DADOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 89 Os dados numéricos dividem-se em dois grupos: inteiros e reais. Os números inteiros podem ser positivos ou negativos e não possuem parte fracionária. Exemplos: -23 98 0 Os números reais podem ser positivos ou negativos e possuem parte fracionária. Exemplos: 23.45 346.89 -34.88 0.0 TIPOS DE DADOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 90 São também chamados dados booleanos (por causa da álgebra de Boole) e podem assumir os valores verdadeiro ou falso. Exemplos: True False TIPOS DE DADOS (LÓGICOS) ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 16 91 São dados formados por um único caractere ou por uma cadeia de caracteres. Esses caracteres podem ser as letras maiúsculas, as letras minúsculas, ou números (não podem ser usados para cálculos) e os caracteres especiais (&, #, @, ?, +). Exemplos: “aluno” “1234” “@ internet” “0.34” “1 + 2” TIPOS DE DADOS (LITERAIS) ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 92 Os identificadores são os nomes das variáveis, dos programas, das constantes, das rotinas, das unidades etc. As regras básicas para a formação dos identificadores são: Os caracteres que você pode utilizar são: os números, as letras maiúsculas, as letras minúsculas e o caractere sublinhado. O primeiro caractere deve ser sempre uma letra ou o caractere sublinhado. Não são permitidos espaços em branco e caracteres especiais (@,$, +, -, %, !). Não podemos usar as palavras reservadas nos identificadores, ou seja, palavras que pertençam a uma linguagem de programação. FORMAÇÃO DE IDENTIFICADORES ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 93 EXEMPLOS DE IDENTIFICADORES ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Identificadores Válidos A a nota NOTA X5 A32 NOTA1 MATRICULA Nota_1 dia Identificadores Inválidos 5b - por começar com número; e 12 - por conter espaço em branco; x-y - por conter o caractere especial; prova 2n - por conter espaço em branco; nota(2) - por conter os caracteres especiais (); case - por ser palavra reservada; set - por ser palavra reservada. 94 As variáveis são declaradas após a palavra declare e os tipos mais utilizados são: numérico (para variáveis que receberão números), literal (para variáveis que receberão caracteres) e lógico (para variáveis que receberão apenas dois valores: verdadeiro ou falso). Exemplo: declare x numérico y, z literal teste lógico DECLARAÇÃO DE VARIÁVEIS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 95 O comando de atribuição é utilizado para conceder valores ou operações a variáveis, sendo representado pelo símbolo Exemplo: X 4 X X+2 Y “aula” teste falso COMANDO DE ATRIBUIÇÃO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 96 O comando de entrada é utilizado para receber dados digitados pelo usuário, que serão armazenados em variáveis. Esse comando é representado pela palavra leia. Exemplo: leia x Um valor digitado pelo usuário será armazenado na variável x. COMANDO DE ENTRADA EM ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 17 97 O comando de saída é utilizado para mostrar dados na tela ou na impressora. Essecomando é representado pela palavra escreva, e os dados podem ser conteúdos de variáveis ou mensagens. Exemplo: escreva x Mostra o valor armazenado na variável x. escreva "conteúdo de y = " , y Mostra a mensagem "Conteúdo de y = " e em seguida o valor armazenado na variável y. COMANDO DE SAÍDA EM ALGORITMO ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 98 Crie um algoritmo em descrição narrativa para ler duas notas de um aluno e calcular a média final. M = (n1+n2)/2. Crie um algoritmo em fluxograma para calcular a área de uma sala, permitindo que o usuário informe o comprimento e largura. A = c*l Crie um algoritmo em pseudo código para calcular o IMC de uma pessoa. IMC = p/h2 Crie um algoritmo em pseudo código para calcular a conversão de graus para radianos. R = π * g/180. EXERCÍCIOS ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 99 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 100 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 101 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba C o m p ila r (C tr l+ F 9 ) E xe cu ta r (C tr l+ F 1 0 ) C o m p ila r e e xe cu ta r (F 9 ) 102 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba E sc o lh e r a p a st a Escolher o nome e o tipo de arquivo como C source files (*.c) ou como C++ sources files (*.cpp) 8/18/2014 18 103 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 104 COMPILADOR DEV-C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 105 As bibliotecas são arquivos contendo várias funções que podem ser incorporadas aos programas escritos em C++. A diretiva #include faz com que o texto contido na biblioteca especificada seja inserido no programa. As bibliotecas iostream e conio permitem a utilização de diversos comandos de entrada e saída. A biblioteca math.h permite que o programador utilize as funções matemáticas. A biblioteca time.h permite o uso da função randômica que tem o objetivo de gerar números aleatórios. A biblioteca locale.h permite que o programador defina a língua que o seu programa será executado. ESTRUTURA SEQUENCIAL EM C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 106 É importante salientar que a linguagem C++ é sensível a letras maiúsculas e minúsculas, ou seja, considera que letras maiúsculas são diferentes de minúsculas (por exemplo, a é diferente de A). Sendo assim, todos os comandos devem, obrigatoriamente, ser escritos com letras minúsculas. Em C++ cada comando é finalizado com o sinal de ponto-e-vírgula. ESTRUTURA SEQUENCIAL EM C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 107 #include <iostream> #include <locale.h> using namespace std; int main() { setlocale(LC_ALL,”Portuguese”); cout<<“Aqui está: Esse é o meu\n\tPrimeiro Programa!!”; system("pause"); return 0; } ESTRUTURA SEQUENCIAL EM C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 108 As variáveis são declaradas após a especificação de seus tipos. int (para números inteiros); float (para números reais); char (para um caractere); bool (para valores lógicos); string (para cadeia de caracteres); TIPOS DE DADOS EM C++ ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 19 109 int x; Tipo inteiro Declara uma variável chamada x em que pode ser armazenado um número inteiro. float y, z; Tipo real (ponto flutuante) Declara duas variáveis chamadas y e z em que podem ser armazenados dois números reais. char sexo; Tipo caractere Declara uma variável chamada sexo em que pode ser armazenado um caractere. char nome[40]; Tipo string Declara uma variável chamada nome em que podem ser armazenados até 40 caracteres. TIPOS DE DADOS EM C++ Exemplo de declaração ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 110 O comando de atribuição é utilizado para conceder valores ou operações a variáveis, sendo representado por = (sinal de igualdade). Exemplo: x = 4; x = x + 2; y = 2.5; sexo = ' F '; LINGUAGEM C++ Comandos de atribuição ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 111 Em C++, os caracteres são representados entre apóstrofos ( ' ). As cadeias de caracteres devem ser representadas entre aspas ( " ). Caso seja necessário armazenar uma cadeia de caracteres dentro de uma variável, deve-se utilizar uma função para manipulação de caracteres, conforme apresentado a seguir: strcpy(nome, "João"); //tipo char LINGUAGEM C++ Comandos de atribuição ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 112 O comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenados em variáveis. Os comandos de entrada mais utilizados na linguagem C++ são cin, gets. Exemplo: cin>>x; Um valor digitado pelo usuário será armazenado na variável x. gets(nome); Um ou mais caracteres digitados pelo usuário serão armazenados na variável nome. getline(cin, nome); Um ou mais caracteres digitados pelo usuário serão armazenados na variável nome do tipo string. LINGUAGEM C++ Comando de entrada ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Operador de extração 113 O comando de saída é utilizado para mostrar dados na tela ou na impressora. O comando de saída utilizado na linguagem C++ é o cout. Exemplo: cout << x; Mostra o valor armazenado na variável x. cout << “Conteúdo de X = “ << x; Mostra a mensagem "Conteúdo de x = “ e em seguida o valor armazenado na variável x. Obs.: Os caracteres \t e \n quando associados ao comando cout permitem que o programa execute, respectivamente, uma tabulação e uma mudança de linha. LINGUAGEM C++ Comando de saída ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba Operador de inserção 114 Comentários são textos que podem ser inseridos em programas com o objetivo de documentá-los. Eles não são analisados pelo compilador. Os comentários podem ocupar uma ou várias linhas, devendo ser inseridos nos programas utilizando-se os símbolos /* */ ou //. Exemplo /* linhas de comentário */ – A região de comentário é aberta com os símbolos de /* e encerrada com os símbolos */ // Comentário – A região de comentário é aberta com os símbolos // e será encerrada automaticamente ao final da linha. LINGUAGEM C++ Comentários ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 20 115 O operador % só pode ser utilizado com operandos do tipo inteiro. LINGUAGEM C++ Operadores aritméticos ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 116 LINGUAGEM C++ Operadores matemáticos de atribuição ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 117 LINGUAGEM C++ Operadores relacionais ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 118 cbrt(x)- calcula raiz cubica de x ou pow(x,1.0/3.0); LINGUAGEM C++ Funções matemáticas ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 119 As funções sin, cos e tan esperam receber argumentos no formato de radianos; para receberem argumentos em graus, siga o próximo exemplo. Exemplo com variável para o valor de n: valorpi = 3.1415; cin>> x; //x em graus y= sin ((valorpi * x) / 180); Exemplo utilizando a função M_PI: cin>>x; //x EM GRAUS y= sin ((M_PI* x) / 180); Linguagem C++ Observações ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 120 Linguagem C++ Palavras reservadas ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 21 121 Faça um algoritmo em linguagem natural para uma receita de bolo. Solução: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver chocolate em pedaços então despeje sobre a mistura Leve a forma ao forno Enquanto não corar deixe a forma no forno Retire do forno Deixe esfriar EXERCICIOS Proposta 1 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 122 Faça um algoritmo em linguagem natural para o evento tomar banho Solução: Entrar no banheiro e tirar a roupa Abrir a torneira do chuveiro Entrar na água Ensaboar-se Enxaguar-se Sair da água Fechar a torneira Enxugar-se Vestir-se EXERCICIOS Proposta 2 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 123 Faça um algoritmo em pseudocódigo para calcular o valor de y com função de x, segundo a função y(x) = 3x + 2, num domínio real. Solução: Algoritmo FUNCAO_DE_X Declare X,Y Real; Escreva (“Informe o valor de X”); Leia (X); Y 3 * X + 2; Escreva (“O valor de y foi = “, Y); Fim Algoritmo EXERCICIOS Proposta 3 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 124 Em relação à lógica considere os pseudocódigos EXERCICIOS Proposta 4 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 125 Somente alg1 tem consistência em sua representação e chega a um resultado Ambos os algoritmos abordam o mesmo problema e chegam ao mesmo resultado Somente alg2 tem consistência em sua representação e chega a um resultado O resultado da solução apresentada por alg2 é maior do que a de alg1 O resultado da solução apresentada por alg2 é menor do que a de alg1 EXERCICIOS Proposta 4 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 126 De acordo com o exemplo de definição de variáveis, afirmar se é verdadeiro ou falso. NOME : literal[10] IDADE : inteiro SALARIO : real TEM_FILHOS : lógico CPF: literal[30]. EXERCICIOS Proposta 5 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 8/18/2014 22 127 ( V ) A variável NOME, capaz de armazenar dados literais de comprimento 10 (dez caracteres); ( V ) A variável IDADE, capaz de armazenar um número inteiro; ( V ) A variável SALÁRIO, capaz de armazenar um número real; ( V ) A variável TEM_FILHOS, capaz de armazenar uma informação lógica; ( F ) A variável CPF, capaz de armazenar um número inteiro de 30 caracteres. EXERCICIOS Proposta 5 - Solução ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 128 Faça um algoritmo receba quatro números inteiros, calcule e mostre a soma desses números. Solução: algoritmo declare n1, n2, n3, n4, soma numérico leia n1, n2, n3, n4 soma n1 + n2 + n3 + n4 escreva soma fim_algoritmo EXERCICIOS Proposta 6 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 129 Faça um algoritmo receba três notas, calcule e mostre a média aritmética entre elas. Solução: Algoritmo declare nota1, nota2, nota3, media numérico leia nota1, nota2, nota3 media (nota1 + nota2 + nota3)/3 escreva media fim_ algoritmo EXERCICIOS Proposta 7 ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
Compartilhar