Baixe o app para aproveitar ainda mais
Prévia do material em texto
1/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO Introduc¸a˜o a` Computac¸a˜o - Computac¸a˜o I (Aula 1) Turmas: ET1, IFN e IQN Prof.: Sa´vio S. Dias sdias@cos.ufrj.br 14 de marc¸o de 2018 2/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ROTEIRO INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO 3/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO INTRODUC¸A˜O APRESENTAC¸A˜O Algumas perguntas ba´sicas antes de comec¸armos: • Quem sou eu? • Quem sa˜o voceˆs? • Ja´ ouviram falar de programac¸a˜o? Experieˆncia? • “Intimidade” com computador: SOs, aplicac¸o˜es, etc; • Calouro ou Veterano? • Nı´vel de ingleˆs? Exemplos de Programas • Internet Explorer, Mozilla Firefox, Google Chrome; • Facebook, Twitter, Orkut (algue´m lembra?); • Microsoft Windows, Linux Kernel, Mac OS, Android, iOS; • Microsoft Office, LibreOffice, iWork; • Instagram, NuBank, WhatsApp, Spotify, Netflix, YouTube. 3/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO INTRODUC¸A˜O APRESENTAC¸A˜O Algumas perguntas ba´sicas antes de comec¸armos: • Quem sou eu? • Quem sa˜o voceˆs? • Ja´ ouviram falar de programac¸a˜o? Experieˆncia? • “Intimidade” com computador: SOs, aplicac¸o˜es, etc; • Calouro ou Veterano? • Nı´vel de ingleˆs? Exemplos de Programas • Internet Explorer, Mozilla Firefox, Google Chrome; • Facebook, Twitter, Orkut (algue´m lembra?); • Microsoft Windows, Linux Kernel, Mac OS, Android, iOS; • Microsoft Office, LibreOffice, iWork; • Instagram, NuBank, WhatsApp, Spotify, Netflix, YouTube. 4/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO A DISCIPLINA COMO SERA´? • Qual “tarefa” um programa deve realizar? • Como ele realiza tal “tarefa”? Objetivos • Desenvolver pensamento lo´gico e estruturado; • Aprender a construir programas de computador; • Ter domı´nio ba´sico da Linguagem Python; Organizac¸a˜o • Toda semana: aula teo´rica e pra´tica; • Duas provas durante o semestre; • Trabalho(s) pra´tico(s) durante as aulas; • Lista de exercı´cios livre*; • Presenc¸a? 4/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO A DISCIPLINA COMO SERA´? • Qual “tarefa” um programa deve realizar? • Como ele realiza tal “tarefa”? Objetivos • Desenvolver pensamento lo´gico e estruturado; • Aprender a construir programas de computador; • Ter domı´nio ba´sico da Linguagem Python; Organizac¸a˜o • Toda semana: aula teo´rica e pra´tica; • Duas provas durante o semestre; • Trabalho(s) pra´tico(s) durante as aulas; • Lista de exercı´cios livre*; • Presenc¸a? 4/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO A DISCIPLINA COMO SERA´? • Qual “tarefa” um programa deve realizar? • Como ele realiza tal “tarefa”? Objetivos • Desenvolver pensamento lo´gico e estruturado; • Aprender a construir programas de computador; • Ter domı´nio ba´sico da Linguagem Python; Organizac¸a˜o • Toda semana: aula teo´rica e pra´tica; • Duas provas durante o semestre; • Trabalho(s) pra´tico(s) durante as aulas; • Lista de exercı´cios livre*; • Presenc¸a? 5/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO A DISCIPLINA AULAS • Aula 1: Introduc¸a˜o a` programac¸a˜o; • Aula 2: Mo´dulos e func¸a˜o; • Aula 3: Tipos de dados, strings e estrutura condicional; • Aula 4: Varia´veis e manipulac¸a˜o de strings; • Aula 5: Tuplas e listas; • Aula 6: Manipulac¸a˜o de listas; • Aula 7: Estrutura de repetic¸a˜o: while; • Aula 8: Estrutura de repetic¸a˜o: for ; • Aula 9: Estrutura de repetic¸a˜o: interfereˆncias; • Aula 10: Diciona´rio; • Aula 11: Matrizes; • Aula 12: Interac¸a˜o com o usua´rio; 6/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO O que e´? Algoritmo e´ uma sequeˆncia finita de instruc¸o˜es bem definidas e na˜o ambı´guas, cada uma das quais devendo ser executadas em espac¸o e tempo finitos. Caracterı´sticas • Finitude: deve sempre terminar apo´s um nu´mero finito (teo´rico) de passos; • Bem-definido: cada passo deve ser precisamente definido; • Entrada(s): informac¸o˜es fornecidas para que o algoritmo possa realizar sua tarefa; • Saı´da(s): resultado final do algoritmo; • Efetividade: todas as operac¸o˜es devem ser suficientemente ba´sicas. 6/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO O que e´? Algoritmo e´ uma sequeˆncia finita de instruc¸o˜es bem definidas e na˜o ambı´guas, cada uma das quais devendo ser executadas em espac¸o e tempo finitos. Caracterı´sticas • Finitude: deve sempre terminar apo´s um nu´mero finito (teo´rico) de passos; • Bem-definido: cada passo deve ser precisamente definido; • Entrada(s): informac¸o˜es fornecidas para que o algoritmo possa realizar sua tarefa; • Saı´da(s): resultado final do algoritmo; • Efetividade: todas as operac¸o˜es devem ser suficientemente ba´sicas. 7/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO CLASSIFICAC¸O˜ES Podemos classificar um algoritmo pela forma como ele foi implementado (pensado): • Recursivo/Iterativo • Serial/Paralelo • Determinı´stico/Na˜o-determinı´stico • Exato/Aproximado Figura: Exemplo de Algoritmo 7/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO CLASSIFICAC¸O˜ES Podemos classificar um algoritmo pela forma como ele foi implementado (pensado): • Recursivo/Iterativo • Serial/Paralelo • Determinı´stico/Na˜o-determinı´stico • Exato/Aproximado Figura: Exemplo de Algoritmo 8/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO ESTRUTURAS DE DADOS Um programa e´ formado por dois elementos ba´sicos: Algoritmos e Estruturas de Dados. • Enquanto os algoritmos dizem as sequeˆncias lo´gicas do programa, as estruturas armazenam e organizam os dados que sera˜o trabalhados na memo´ria (ou outra unidade de armazenamento). • Alguns exemplos de estruturas de dados simples: tipo de dado primitivo, vetores e matrizes, listas, filas e pilhas. • Alguns exemplos de estruturas de dados complexas: A´rvores, hashing e grafo. 9/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO ALGORITMO EXEMPLO Elaborar um algoritmo (fluxograma e pseudo-co´digo) para, ler dois valores de entrada x e y e uma opc¸a˜o, imprimir o resultado da operac¸a˜o de acordo com a opc¸a˜o: • SUM para x+ y; • MIN para x− y; • MUL para x× y; • DIV para xy ; • AVG para x+y2 ; 10/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O Os algoritmos descrevem como uma tarefa deve ser realizada. Entretanto, para que o computador “entenda” as instruc¸o˜es, precisamos escreveˆ-las em uma linguagem que ele entenda. Co´digo de Ma´quina Os computadores entendem apenas co´digo de ma´quina. Um programa em co´digo de ma´quina consiste de uma sequeˆncia de bytes contendo instruc¸o˜es em numerac¸a˜o hexadecimal que sera˜o executadas pelo processador. Programar em co´digo de ma´quina e´ contra-intuitivo para humanos. Para tal finalidade, as linguagens de programac¸a˜o foram desenvolvidas. Figura: Linguagens de Programac¸a˜o 10/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O Os algoritmos descrevem como uma tarefa deve ser realizada. Entretanto, para que o computador “entenda” as instruc¸o˜es, precisamos escreveˆ-las em uma linguagem que ele entenda. Co´digo de Ma´quina Os computadores entendem apenas co´digo de ma´quina. Um programaem co´digo de ma´quina consiste de uma sequeˆncia de bytes contendo instruc¸o˜es em numerac¸a˜o hexadecimal que sera˜o executadas pelo processador. Programar em co´digo de ma´quina e´ contra-intuitivo para humanos. Para tal finalidade, as linguagens de programac¸a˜o foram desenvolvidas. Figura: Linguagens de Programac¸a˜o 10/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O Os algoritmos descrevem como uma tarefa deve ser realizada. Entretanto, para que o computador “entenda” as instruc¸o˜es, precisamos escreveˆ-las em uma linguagem que ele entenda. Co´digo de Ma´quina Os computadores entendem apenas co´digo de ma´quina. Um programa em co´digo de ma´quina consiste de uma sequeˆncia de bytes contendo instruc¸o˜es em numerac¸a˜o hexadecimal que sera˜o executadas pelo processador. Programar em co´digo de ma´quina e´ contra-intuitivo para humanos. Para tal finalidade, as linguagens de programac¸a˜o foram desenvolvidas. Figura: Linguagens de Programac¸a˜o 10/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O Os algoritmos descrevem como uma tarefa deve ser realizada. Entretanto, para que o computador “entenda” as instruc¸o˜es, precisamos escreveˆ-las em uma linguagem que ele entenda. Co´digo de Ma´quina Os computadores entendem apenas co´digo de ma´quina. Um programa em co´digo de ma´quina consiste de uma sequeˆncia de bytes contendo instruc¸o˜es em numerac¸a˜o hexadecimal que sera˜o executadas pelo processador. Programar em co´digo de ma´quina e´ contra-intuitivo para humanos. Para tal finalidade, as linguagens de programac¸a˜o foram desenvolvidas. Figura: Linguagens de Programac¸a˜o 11/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O O QUE E´? • Linguagem artificial com sintaxe e semaˆntica bem definidos; • Usada para exprimir programas (algoritmos); • Permite ao programador uma capacidade maior do que linguagens naturais; • Entretanto, tem menos recurso que a linguagem de ma´quina. 12/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O Como fazer o computador entender uma linguagem de programac¸a˜o enta˜o? Figura: Compiladores 13/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O PARADIGMAS As linguagens de programac¸a˜o podem ser classificadas quanto ao paradigma adotados em sua sintaxe e semaˆntica. Sa˜o eles: • Paradigma estruturado: reduc¸a˜o do programa a treˆs estruturas: sequeˆncia, decisa˜o ou selec¸a˜o e iterac¸a˜o; • Paradigma orientado a objetos: abstrac¸a˜o e identificac¸a˜o de unidades ba´sicas de software (classes e objetos) na composic¸a˜o e interac¸a˜o de todos os elementos do programa. • Paradigma imperativo: define sequeˆncias de comandos que um computador deve seguir para realizar uma tarefa; • Paradigma declarativo: descreve o que deve ser feito, na˜o como os procedimentos funcionam. 14/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO LINGUAGENS DE PROGRAMAC¸A˜O PYTHON Motivos para se programar em Python: • Linguagem simples (alto nı´vel), robusta e escala´vel; • Suporte para diversos paradigmas de programac¸a˜o: Orientado a Objetos, Imperativo, etc; • Extensa biblioteca padra˜o e de terceiros; • Multi-plataforma; • Va´rias aplicac¸o˜es desenvolvidas utilizando a linguagem; • Open source; • Extensa comunidade. 15/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO EXERCI´CIO PREPARANDO O TERRENO... Instalando Python • https://www.python.org/ (Versa˜o 2.7.14); • Instalac¸a˜o para Windows; • Sistemas Linux ja´ vem com Python instalado por padra˜o (verificar versa˜o). Instalar um editor de texto simples: Atom, VSCode, gedit, notepad++, etc. Algumas IDEs: PyCharm, Eclipse. Figura: Hello, world! 15/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO EXERCI´CIO PREPARANDO O TERRENO... Instalando Python • https://www.python.org/ (Versa˜o 2.7.14); • Instalac¸a˜o para Windows; • Sistemas Linux ja´ vem com Python instalado por padra˜o (verificar versa˜o). Instalar um editor de texto simples: Atom, VSCode, gedit, notepad++, etc. Algumas IDEs: PyCharm, Eclipse. Figura: Hello, world! 16/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO REFEREˆNCIAS I • Aprendendo Python. David Ascher & Mark Lutz, Editora Bookman, 2a edic¸a˜o, 2007. 566p. • Programming Python. Mark Lutz, O’Reilly, 2001. 1255p. • Beginning Python from Novice to Professional. Magnus Lie Hetland, Apress, 2005. 640p. • Python Cookbook. Alex Martelli & David Ascher, O’Reilly, 2002. 575p. Links importantes • http://orion.lcg.ufrj.br/python/ • https://www.python.org/doc/ • https://www.urionlinejudge.com.br/ • https://stackoverflow.com/ 17/17 INTRODUC¸A˜O A DISCIPLINA ALGORITMO LINGUAGENS DE PROGRAMAC¸A˜O EXERCI´CIO Introduc¸a˜o a` Computac¸a˜o - Computac¸a˜o I (Aula 1) Turmas: ET1, IFN e IQN Prof.: Sa´vio S. Dias sdias@cos.ufrj.br 14 de marc¸o de 2018 Introdução A Disciplina Algoritmo Linguagens de Programação Exercício
Compartilhar