Introdução a Ciência da Computação

Documentos relacionados
Algoritmos e Programação

INTRODUÇÃO À PROGRAMAÇÃO

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Algoritmos e Programação

Algoritmos e Linguagem de Programação I

Algoritmos e Programação

Introdução à Programação. Prof. Gustavo Callou

Linguagens de Programação

Introdução à Programação. Ceça Moraes

Ivanovitch Medeiros Dantas da Silva. Natal, 01 de setembro de 2011

Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno

Introdução à Computação

Sistema Computacional

SSC304 Introdução à Programação Para Engenharias

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Algoritmos e Programação de Computadores Disciplina:

Programação de Computadores

4 Introdução ao Algoritmo

Programação de Computadores

Introdução à Computação

Introdução a Programação

Programação em C. Victor Amorim dos Santos

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Linguagens de Programação Classificação

GFM015 Introdução à Computação

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Introdução à Programação

PROGRAMAÇÃO I. Introdução

Introdução a Ciência da Computação

Algoritmos. Prof. Jonatas Bastos Site:

ORGANIZAÇÃO DE COMPUTADORES

Introdução à Computação

Introdução à Computação: Máquinas Multiníveis

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Programação Básica de Computadores

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Fundamentos de Sistemas Operacionais

Algoritmos e Programação

INFORMÁTICA: Informação automática

Prof. Esp. Fabiano Taguchi SOFTWARES

Introdução. (Aula 2) Organização Estruturada de Computadores

Fundamentos de Programação 1

Noções de sistemas de computação

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Paradigmas de Programação

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Assunto 2 - Software. Prof. Miguel Damasco

Projeto de Algoritmos

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

Métodos de implementação de linguagens. Kellen Pinagé

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Fundamentos de Programação. Introdução

Infraestrutura de Hardware. Funcionamento de um Computador

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Aula 3 Máquina Multinível

Projeto de Compiladores

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

MC-102 Aula 01. Instituto de Computação Unicamp

EVOLUÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Fundamentos de Programação Introdução

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

ALGORITMOS. Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação

Capítulo 1. Aspectos Preliminares

GFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Compiladores. Introdução à Compiladores

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Introdução à Computação: Máquinas Multiníveis

Transcrição:

Ministério da Educação Universidade Tecnológica Federal do Paraná Câmpus Santa Helena Introdução a Ciência da Computação Bacharelado em Ciência da Computação Professor : Agnaldo da Costa 1

Algoritmos e suas Aplicações O que é um Algoritmo?

Histórico Surgiu no ano 300 a.c, o Algoritmo de Euclides, o mais antigo que se tem conhecimento ; O conceito de algoritmo foi formalizado pela primeira vez em 1936, por Alan Turing, um dos fundadores da Ciência da Computação; A origem do vocábulo nasceu aí, influenciado pelo nome do matemático persa Abu Ja far Mohammed ibn Mûsâ al-khowârizm, que escreveu um manual intitulado Kitab al jabr w al-muqabala, que traduzido para o latim resultou em algo como Algoritmi de numero Indorum. O tradutor teria confundido o nome do autor (Algoritmi) com o plural de números em latim (algorismus).

Aplicações dos Algoritmos Para que a automação de uma tarefa seja bem-sucedida é necessário que a máquina que passará a realizá-la seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficiência, de modo a garantir a repetibilidade do mesmo. À especificação da sequência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo. Um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador (linguagem de programação).

Definições de Algoritmos "Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas." Conjunto de passos que definem como uma tarefa é realizada (Brookshear, 2013);

Definições de Algoritmos Os algoritmos, servem para representar a solução de qualquer problema, mas no caso do Processamento de Dados, eles devem seguir as regras básicas de programação para que sejam compatíveis com as linguagens de programação.

Formas de Representação de Algoritmos Dentre as formas de representação de algoritmos mais conhecidas podemos citar: Descrição Narrativa; Fluxograma Convencional; Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol;

Descrição Narrativa Na descrição Narrativa os algoritmos são expressos diretamente em linguagem natural Troca de um pneu furado: Afrouxar ligeiramente as porcas, suspender o carro, retirar as porcas e o pneu, colocar o pneu reserva, apertar as porcas, abaixar o carro, dar o aperto final nas porcas ; Cálculo da média de um aluno: Obter 2 notas de provas, calcular a média aritmética, se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado

Fluxograma Convencional É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das ideias contidas nos algoritmos e justifica sua popularidade.

Pseudocódigo Esta forma de representação de algoritmos é rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo. Por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação.

Pseudocódigo Algoritmo Calculo_Media Var N1, N2, MEDIA: real Início Leia N1, N2 MEDIA (N1 + N2) / 2 Se MEDIA >= 7 então Escreva Aprovado Senão Escreva Reprovado Fim_se

Síntese Há diversas formas de representação de algoritmos que diferem entre si pela quantidade de detalhes de implementação que fornecem ou, inversamente, pelo grau de abstração que possibilitam com relação à implementação do algoritmo em termos de uma linguagem de programação específica.

Linguagem de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar determinadas tarefas específicas. Os programas de computador podem ser escritos em várias linguagens de programação, algumas diretamente compreensíveis pelo computador e outras que exigem passos de tradução intermediária As linguagens de programação podem ser divididas em três tipos, com relação à sua similaridade com a linguagem humana: Linguagem de máquina; Linguagem simbólica; Linguagem de alto nível.

Linguagem de Máquina Linguagem de máquina (machine languale): é a linguagem de mais baixo nível de entendimento pelo ser humano e a única, na verdade, entendida pelo processador (UCP). É constituída inteiramente de números, o que torna praticamente impossível entendê-la diretamente. Cada UCP tem seu conjunto único de instruções que definem sua linguagem de máquina, estabelecido pelo fabricante do chip.

Linguagem de Máquina

Conversão Decimal para Binário

Tabela ASCII ASCII (do inglês American Standard Code for Information Interchange; "Código Padrão Americano para o Intercâmbio de Informação") é um código binário (cadeias de bits: 0s e 1s) que codifica um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e sinais matemáticos) e 33 sinais de controle. Cada código binário possui 8 bits (equivalente a 1 byte), sendo 7 bits para o propósito de codificação e 1 bit de paridade (detecção de erro).

Linguagem de Máquina

Principio funcionamento do computador

Usuário final Software Aplicativo Linguagens de alto nível Montadores, interpretadores e compiladores Software Básico: Sistema operacional + Drivers Máquina convencional Linguagem de máquina (Assembly) Microprogramação (usando circuitos eletrônicos) Lógica digital (circuitos eletrônicos) MÁQUINA

Linguagem Assembly Linguagem simbólica (assembly): é a linguagem de nível imediatamente acima da linguagem de máquina. Ela possui a mesma estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o programador utilize nomes (chamados mnemônicos) e símbolos em lugar de números. A linguagem simbólica é também única para cada tipo de UCP, de forma que um programa escrito em linguagem simbólica para uma UCP poderá não ser executado em outra UCP de uma família diferente

Linguagem Assembly A conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feito por um programa chamado montador (ou assembler); Essa linguagem é também classificada como linguagem de segunda geração, e, assim como a linguagem de máquina, é considerada uma linguagem de baixo nível.

Linguagem de Alto Nível São as linguagens de programação que possuem uma estrutura e palavras-chave que são mais próximas da linguagem humana. Tornando os programas mais fáceis de serem lidos e escritos; Esta é a sua principal vantagem sobre as linguagens de nível mais baixo; Os programas escritos nessas linguagens são convertidos para a linguagem de baixo nível através de um programa denominado compilador ou de um interpretador

Linguagens de Alto Nível

Linguagens de Alto Nível ASP ActionScript C/C++ C# Pascal/Object Pascal Euphoria Java MATLAB PHP Python Ruby Basic/Visual Basic

Linguagem C++ O conceituado site TIOBE, especializado na avaliação e qualidade de software, classificou a linguagem C como uma das linguagens mais utilizadas entre Janeiro de 2014 e Janeiro de 2015. Dentro do universo do mundo da programação, a linguagem C é utilizada por 16,7% dos desenvolvedores. TIOBE.Disponível em: http://www.tiobe.com/index.php/content/company/home.html. Acesso em 22/01/2015.

Linguagens de Programação A revista IEEE - Instituto de Engenheiros Eletricistas e Eletrônicos, principal revista especializada no assunto, realizou em 2014 uma pesquisa sobre as principais linguagens utilizadas no mundo da computação. O estudo dividiu as linguagens em em quatro categorias: web, desktops, dispositivos moveis e software embarcado

Linguagens mais Populares

Aplicações Embarcadas Um sistema embarcado (ou sistema embutido, ou sistema embebido) é um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla

Java O Java é uma linguagem de programação orientada a objetos que tem como um de seus princípios a portabilidade, que é a capacidade de ser interpretada em diversos sistemas operacionais e dispositivos sem a necessidade de reescrever o código. A primeira versão da linguagem foi lançada pela Sun Microsystems em 1995 e atualmente a linguagem pertence a Oracle.

Python Python é uma linguagem que nos permite trabalhar mais rápido e integrar sistemas de forma eficaz. Foi lançada por Guido van Rossum em 1991 e é mantido pela organização sem fins lucrativos Python Software Foundation.

LUA Lua é uma linguagem de programação poderosa, rápida e leve, projetada para estender aplicações. Lua é distribuída via um pequeno pacote e compila sem modificações em todas as plataformas que têm um compilador C padrão. Lua roda em todos os tipos de Unix e Windows, e também em dispositivos móveis (usando Android, ios, BREW, Symbian, Windows Phone)

Aplicações Moveis Um aplicativo móvel ou aplicação móvel, conhecido normalmente por seu nome abreviado app, é um software desenvolvido para ser instalado em um dispositivo eletrônico móvel. Se a sua vontade é criar um aplicativo para iphone, ipod e ipad, sua melhor aposta é trabalhar com Objective-C, uma das linguagens que mais cresce atualmente.

Objective-C Objective-C (objc) é uma linguagem orientada a objetos para uso geral que combina C e Smaltalk. É a linguagem principal para a plataforma Apple como OS X (utilizado no MAC) e IOS (utilizado no Iphone). O objc foi criado aproximadamente nos anos 80 pela empresa Stepstone.

Java Script JavaScript é uma linguagem de programação web do tipo scripit. Essa linguagem é responsável por executar scripts do lado do cliente, sem a necessidade de passar pela interpretação do servidor. Linguagem caracterizada por ser dinâmica, ou seja, executar comandos no navegador sem a necessidade de recarregar a página.

Aplicações Desktop Se você está desenvolvendo a aplicação para um grande cliente ou para um pequeno, a complexidade da aplicação, em qual ambiente vai rodar, plataforma, especificações da(s) máquina(s) que irão receber a aplicação, etc. As mais usadas pelo pessoal da programação é Java, Delphi, C#,.net e tantas outras, cada qual com suas qualidades e com seus defeitos

DELPHI A linguagem utilizada pelo Delphi, o Object Pascal (Pascal com extensões orientadas a objetos) a partir da versão 7 passou a se chamar Delphi Language. Atualmente há um projeto chamado Lazarus que possui uma interface muito semelhante ao Delphi e a característica de ser multiplataforma, ou seja, roda tanto no windows como no linux

Visual Basic O Visual Basic, ou VB, foi produzido pela Microsoft como um aperfeiçoamento da linguagem BASIC. O VB é uma linguagem comumente utilizada para programação de sistemas desktop. O Visual Basic.NET é a versão mais nova do VB e faz parte da plataforma Microsoft.NET.

C# O C# (C Sharp) é uma linguagem de programação multi-paradigma, criada pela Microsoft e faz parte da plataforma.net. Essa linguagem foi baseada no C++, é uma linguagem fortemente tipada e robusta, tem o objetivo de ser simples, moderna e para uso geral.

Aplicações WEB Em computação, aplicação web designa, de forma geral, sistemas de informática projetados para utilização através de um navegador, através da internet ou aplicativos desenvolvidos utilizando tecnologias web HTML.

PHP O PHP (Hypertext Preprocessor) é uma linguagem para desenvolvimento web de uso geral, é uma linguagem Server side (interpretada do lado do servidor). Foi criada em 1994 por Rasmus Lerdorf como parte de um pacote de programas

Usuário final Software Aplicativo Linguagens de alto nível Montadores, interpretadores e compiladores Software Básico: Sistema operacional + Drivers Máquina convencional Linguagem de máquina (Assembly) Microprogramação (usando circuitos eletrônicos) Lógica digital (circuitos eletrônicos) MÁQUINA

REFERENCIAS DALE, N.; LEWIS, J. Ciência da Computação. Rio de Janeiro: LTC, 2010. MOKARZEL, F. C.; SOMA, N. Y. Introdução a Ciência da Computação. Campus, 2008. BROOKSHEAR J. G.; Ciência da Computação Uma visão abrangente. 11. ed, Editora Bookman, 2013.