Algoritmos Faculdades Integradas Camões Prof. Luiz José Hoffmann Filho [email protected] Professor Luiz José Hoffmann Filho [email protected] [email protected] Informações Website: ◦ www.luizhoffmann.com.br ◦ Notas de aula (slides) ◦ Listas de exercícios ◦ Datas de provas, dicas, etc. [email protected] Horário Aulas terão início às Quartas-feiras 18:45 às 22:00 Horário de atendimento – Sob demanda, dúvidas [email protected] Presença Altamente recomendada Disciplina tem ritmo acelerado [email protected] Ementa Estudo das formas para representação do pensamento lógico através das técnicas de desenvolvimento de algoritmos. Representação e manipulação de dados. Construções de algoritmos sequenciais, condicionais e com estruturas de repetição. Tipos de dados básicos e estruturados. Comandos de uma linguagem de programação. Resolução de problemas, variáveis, identificadores, instruções, operadores, estrutura sequencial, de decisão e repetição, matrizes. [email protected] Plano de Aula Conceitos básicos e introdução à algoritmos; Linguagem C; Estrutura de um programa; Tipo primitivos de dados (variáveis e constantes); Operadores (matemáticos, relacionais e lógicos); Expressões lógicas e aritméticas; Estruturas de decisão e Estruturas de repetição; Vetores e matrizes; Funções, procedimentos e passagens de parâmetros. [email protected] Métodos de Avaliação 1ª nota : 1 prova (60 %) + Trabalho (40 %) 2ª nota : 1 prova (60 %) + Trabalho (40 %) Nota Final: (1ª nota + 2ª nota ) / 2 Lista podem valer pontos!!!! [email protected] Referência Bibliográfica FARRER, Harry. Algoritmos Estruturados. 3° ed Rio de Janeiro. Livros Técnicos e Científicos Editora S. A. 1999. KERNIGHAN, Brian W, A Prática da programação. Rio de janeiro. Editora Campus Ltda., 2000. MANZANO, José Augusto. Lógica para Desenvolvimento de Programação. São Paulo Editora Érica, 2000. SOUZA, Marco Antônio Furlan. Algoritmos e Lógica de Programação. São Paulo. Editora Pioneira, 2005. WIRTH, Niklaus. Algoritmos e Estrutura de Dados. Rio de janeiro. Livros Técnicos e Científicos Editora S.A., 1999. SCHILDT, H. C Completo e Total. 3ª ed. São Paulo: Makron Books, 1999. [email protected] Algoritmos Aula 1 Introdução à computação e à informática. Prof. Luiz José Hoffmann Filho [email protected] Introdução à computação e à informática Uma diferenciação entre a computação e à informática, de uma maneira simplista, pode ser à que esboça a figura... Figura retirada dos slides do Prof. Simão. [email protected] Mudanças decorrentes da computação e informática O que mudou? Automatização de Processos Matemáticos e Administrativo – dinamizando o desenvolvimento de artefatos e instituições. Automatização de Processos Industriais – dinamizando a produção, revolucionando as relações de trabalho... Manutenção e processamento dos dados. Grande número de atividades automatizadas pela informática. Integração dos dados, serviços e pessoas via redes de computadores. Disseminação do conhecimento por meio da evolução das redes de computadores (internet). Exclusão e inclusão digital. [email protected] O papel da computação/informática na sociedade. Automatizar os processos. Aumentar a qualidade de vida das pessoas: – Bioinformática – Sistemas de computação para medicina Ferramenta de cidadania e igualdade social: - Exposição da informação ao cidadão, - Agilizar os processos de participação do cidadão, - Auxilio em emergências. [email protected] Computador Dipositivo para processar informação. [email protected] Sistema Operacional O Sistema Operacional gerencia as relações entre as partes do computador e também os aplicativos (programas) que são executados nele. [email protected] Definições Hardware: parte “física” do computador. - Segundo Aurélio, “componente, ou conjunto de componentes físicos de um computador ou de seus periféricos “. - Conjunto de componentes eletrônicos, circuitos e placas que se comunicam através de sinais elétricos (barramentos). Software: parte “lógica” do computador. - Conjunto de instruções e dados que é processado pelos circuitos eletrônicos do hardware (componentes físicos). Resumindo: hardware = equipamento, software = programas. [email protected] Software Um software é basicamente um conjunto de instruções que dita o comportamento do computador durante um certo tempo. Faça Operação A. Faça Operação B 5 vezes. Se resultado Operações B é ‘bom’ Então Operação D Senão Operação E O desenvolvimento de um software é feito por meio de uma linguagem de programação. [email protected] Linguagem de Programação Para que o computador compreenda e execute um programa, é necessário escrevê-lo usando uma linguagem que tanto o computador quanto o criador do software entendam. Etapas para o desenvolvimento de um programa: Análise – nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saida. 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. [email protected] Programação Para programar é necessário: – desenvolver o raciocínio lógico. – ter noções de lógica. – saber desenvolver algoritmos. – conhecer uma linguagem de programação. Assim sendo, trabalharemos: – o aprimoramento de raciocínio lógico. – o elementar da lógica. – a capacidade de desenvolver algoritmos. – a linguagem de programação C. – Um ambiente de programação em C. [email protected] Lógica A lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Sequência Lógica São passos executados até atingir um objetivo ou a solução de um problema. Instruções Um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. [email protected] Algoritmo “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) No dia-a-dia executamos vários algoritmos. [email protected] Exemplo Algoritmo Fazer um sanduíche: - Pegar o pão - Cortar o pão ao meio - Pegar a maionese - Abrir a maionese - Passar a maionese no pão - Pegar o alface e tomate - Cortar o tomate - Lavar o alface - Colocar o tomate e o alface no pão - Pegar o hamburger - Fritar o hamburger - Colocar o hamburger no pão - Fechar o pão. [email protected] Exercício Faça um algoritmo para trocar uma lâmpada queimada. [email protected] Exercício Do Algoritmo anterior o que acontece se a nova lâmpada estiver queimada. Refaça a sequência. [email protected] Bibliografia Baseado nos slides do Professor Jean Simão disponível em: http://www.pessoal.utfpr.edu.br/jeansimao/ Ascencio, A. F. G., CAMPOS, E. A.V. Fundamentos da programação de computadores. 2. ed. Pearson Prentice Hall, 2007. Forbellone A. L.V., Eberspächer, H. F.: Lógica de Programação : A construção de Algoritmos e Estruturas de Dados. Makron Books, 1993. [email protected]