Beruflich Dokumente
Kultur Dokumente
Parte 1 - Introduo
Cozinha x Computador
Receita Culinria Ingredientes so definidos os dados a serem usados e as quantidades que devem estar preparadas e separadas para a elaborao da receita Modo de preparo so descritos o programa de aes e a sequncia de atividades
Se uma das etapas definidas em toda a receita deixar de ser seguida,terse- no final um resultado diferente do preestabelecido na receita
Cozinha x Computador
Cozinheiro pessoa que,se seguir os passos da receita, consegue preparar a refeio indicada sem grandes dificuldades
Usurio prova a refeio que foi preparada pelo cozinheiro, que no necessariamente um mestre-cuca,mas algum que, ao longo de um determinado tempo,pode se tornar um
Cozinha x Computador
Na atividade de programao de computadores h etapas semelhantes s de uma cozinha
Programador de computador Mestre-cuca prepara o programa a ser utilizado por uma pessoa denominada usurio Cozinheiro montam programas a partir de algoritmos j escritos Usurio quer consumir,usar um programa como algum que entra em um restaurante e deseja comer um alimento Ele no est preocupado com a maneira como o alimento foi preparado (ou como um programa de computador foi escrito), simplesmente quer us-lo
Conceito de Problema
O que um problema?
Conceito de Problema
Problema (Dicionrio Michaelis): Substantivo Masculino. Questo matemtica proposta para ser resolvida. Questo difcil, delicada, suscetvel de diversas solues. Qualquer coisa de difcil explicao; mistrio, enigma. Dvida, questo.
8
Exemplos de Problema
Problemas fazem parte do nosso cotidiano. Exemplo de problemas cotidianos: Trocar a resistncia de um chuveiro. Definir onde Almoar. Sempre que nos deparamos com um problema buscamos um procedimento para solucionar o mesmo.
Exemplo de Soluo
Conceito de Lgica
O que lgica? A lgica o ramo da Filosofia e da Matemtica que estuda os mtodos e princpios que permitem fazer distino entre raciocnios vlidos e no vlidos, determinando o processo que leva ao conhecimento verdadeiro.
11
Conceito de Lgica
O uso da lgica primordial na soluo de problemas. Com ela possvel alcanar objetivos com eficincia e eficcia.
.
Ningum ensina outra pessoa a pensar, mas a desenvolver e aperfeioar esta tcnica, com persistncia e constncia.
12
Lgica
A Lgica estuda os processos vlidos e gerais pelos quais atingimos a verdade [...] a cincia das leis do pensamento.
Palavra criada pelo filsofo grego Aristteles (sc. IV a.C.) para estudar o pensamento humano e distinguir interferncias e argumentos certos e errados a cincia dos argumentos, ou seja, ela trata das concluses a que chegamos a partir das evidncias que as sustentam
3
Axioma: hiptese, sentena ou proposio no provada mas considerada como bvia ou de consenso inicial para formulao de uma teoria Inferncia: o processo pelo qual se chega a uma proposio, com base em axiomas
4
Lgica: Deduo
Deduo caracteriza-se por apresentar concluses que devem ser verdadeiras caso todas as premissas sejam verdadeiras. Exemplo
Todo ser humano mortal. Pedro um ser humano. Portanto, Pedro mortal.
Premissas
Concluso
Lgica: Induo
Induo: o pensamento indutivo consiste em partir de premissas particulares, na busca de uma lei geral. Exemplo
O ferro conduz eletricidade. O ferro um metal. O ouro conduz eletricidade.
O pensamento indutivo parte do particular para o geral.
O ouro um metal. O cobre conduz eletricidade. O cobre um metal. Logo: os metais conduzem eletricidade.
Algoritmos e Ling.de Programao Introduo
Algoritmo
Sequncia ordenada de passos (instrues) necessrios para a resoluo de um problema ou processo. Procedimento passo a passo para resoluo de um problema
Resolver uma operao matemtica seguindo passos at chegar ao resultado final Assar uma pipoca no forno microondas Tomar medicamentos seguindo orientaes mdicas Cozinhar seguindo receitas culinrias
Algoritmos e Ling.de Programao Introduo
Algoritmo (exemplo)
Um algoritmo para preparar um Bolo de Chocolate 1- Aquea o forno a 180o C; 2 - Unte uma forma redonda; 3 - Numa taa; a) Bata75g de manteiga250g de aucarat ficar cremoso; b) Junte4ovos, um a um100g de chocolate derretido; c) Adicione aos poucos 250g de farinha peneirada; 4 -Deite a massa na forma; 5 - Leve ao forno durante 40 minutos; 6 -Espere o Bolo assar; 7 - Retire o bolo do forno.
Introduo
Dados e Informaes
Dados: so os fatos em sua ordem primria. Informao: parte utilizvel dos dados, que pode ser armazenada, transmitida ou permitir a deduo de novas informaes.
Produto final (acabado, lapidado) Ex: oramento, resultado acadmico, folha de pagamento
DADO
INFORMAO
CONHECIMENTO
10
Processamento de dados
Qualquer trabalho de manipulao de dados que tenha como finalidade obter resultados previamente estabelecidos de modo a resolver determinado problema Tem 3 partes principais: ENTRADA, PROCESSAMENTO e SADA
Envolve TRANSMISSO, ARMAZENAMENTO, RECUPERAO, COMPARAO, COMBINAO de informaes
ENTRADA
PROCESSAMENTO
SADA
11
Atravs de um algoritmo os dados de entrada podem ser processados e teremos a soluo do problema, que gerar uma sada de dados
Introduo
12
13
(Um pouco mais sobre algoritmos: Conceitos, caractersticas, importncia e passos para criao)
14
Conceitos
Algoritmo uma seqncia de passos que visa atingir um objetivo bem definido (FORBELLONE, 1999) Algoritmo uma seqncia de passos que deve ser seguida para a realizao de uma tarefa (ASCENCIO, 1999) Algoritmos so regras formais para a obteno de um resultado ou da soluo de um problema, englobando frmulas de expresses aritmticas (MANZANO, 1997)
Algoritmos e Ling.de Programao Introduo
15
Conceitos
Um algoritmo uma lista de instrues que, quando executadas, transformam dados de entrada at a sada. As instrues so um conjunto finito de etapas que podem ser executadas, numa ordem precisa, por um mecanismo determinista. Quando estas etapas so efetivamente executadas , a execuo deve terminar aps um tempo finito.
(HOLLOWAY, 2006)
16
Caractersticas de um algoritmo
Ter fim; No dar margem a dupla interpretao; Capacidade de receber dados do mundo exterior; Poder gerar informaes de sada para o mundo externo ao ambiente do algoritmo; Ser efetivo;
Algoritmos e Ling.de Programao Introduo
17
[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na rea e responsvel pela criao de linguagens de programao como ALGOL, PASCAL e MODULA-2]
18
19
Algoritmos
Os computadores ou sistemas computacionais so as ferramentas que vo nos permitir automatizar grande parte das tarefas do nosso dia-a-dia, seja no contexto profissional ou pessoal. No existe mgica alguma por trs deste processo de automatizao, mas necessrio que o usurio seja capaz de convencer o computador a executar estas tarefas de forma automtica.
Isto feito atravs dos programas computacionais, construdos a partir do uso de linguagens de programao, cujo objetivo oferecer ao usurio (ou programador) um meio de comunicao com a mquina.
Algoritmos
A construo de um programa computacional motivada geralmente a partir de uma necessidade de soluo de um problema particular:
gerao automtica de documentos, controle de um equipamento eletrodomstico, transmisso de informaes em longas distncias, agilizao de clculos cientficos,e outras motivaes mais.
A soluo dos nossos problemas atravs de um sistema computacional s obtida no momento em que definido um conjunto coerente de instrues de um programa que permita estabelecer que aes devero ser executadas e em que ordem.
A descrio formal do processo de obteno de uma soluo computacional definida como sendo um algoritmo.
Algoritmos
Procedimento passo a passo para resolver um problema Pessoas tem inteligncia e habilidade racional => fazem perguntas para se esclarecer. Computador no tem senso prprio => deve receber instrues explcitas (algoritmos)
Os Computadores,infelizmente s fazem aquilo que mandamos e no necessariamente o que desejamos que eles faam!
Algoritmos
A tarefa de programao dos computadores no simples medida que a complexidade dos problemas foi aumentando,constatou-se que a construo de um programa deveria ser, na realidade, resultado de um trabalho de engenharia,como o so tantos outros produtos. Da mesma forma como, no caso de um edifcio ou o motor de um automvel, no se passa diretamente da idia construo, o desenvolvimento de um programa dever ser caracterizado pela execuo de uma fase (a mais exaustiva possvel) de reflexo onde o objetivo analisar o problema a resolver e encontrar uma soluo (se possvel, a melhor) que possa ser realizada por um sistema computacional. O resultado deste trabalho de reflexo pode ser,ento,registrado na forma de um algoritmo,a partir do qual o programa ser finalmente construdo.
Algoritmos
Etapas da Construo de Programas
DEFINIO (o que)
Definio do Problema Projetar a Soluo (ALGORITMO) Codificar a Soluo (Programar em Linguagem de Computador) Testar o Programa
DESENVOLVIMENTO (como)
Algoritmos
Etapas da Construo de Programas
Problema
Fase de resoluo do Problema
Passo Difcil
Algoritmos
Etapas da Construo de Programas
preciso separar a Fase de Resoluo do Problema da Fase de Implementao
Um algoritmo correto deve possuir 4 qualidades: 1- O algoritmo deve ter um incio 2- Cada passo do algoritmo deve ser uma instruo que possa ser realizada 3-A ordem dos passos deve ser precisamente determinada 4- O algoritmo deve ter um fim
Algoritmos
A Linguagem Natural e oTexto Estruturado
Algoritmos
A Linguagem Natural e oTexto Estruturado Observemos novamente o exemplo de algoritmo que explica a uma pessoa como trocar o pneu de um carro. pegar o macaco e o estepe no porta-malas do carro se o estepe estiver cheio levantar o carro usando o macaco retirar o pneu furado colocar o estepe em seu lugar abaixar o carro guardar o macaco e o pneu furado seno aguardar socorro
Algoritmos
A Linguagem Natural e oTexto Estruturado
O exemplo apresentado ainda relativamente curto para ilustrar a dificuldade de compreenso que a apresentao neste formato pode representar.
Utilizando as facilidades de indentao (tabulao) pode-se torn-lo mais compreensvel. A forma de representao denominada de texto estruturado, largamente utilizada na descrio do comportamento de programas de computador,de um lado,pela suainformalidade e,por outro,pela sua proximidade com a forma de escrever programas em um nmero bastante grande de linguagens de programao.
Algoritmos
A Linguagem Natural e oTexto Estruturado
pegar o macaco e o estepe no porta-malas do carro se o estepe estiver cheio levantar o carro usando o macaco retirar o pneu furado colocar o estepe em seu lugar abaixar o carro guardar o macaco e o pneu furado seno aguardar socorro
20
Responda:
1- Quais
so os tipos de raciocnios lgicos e qual a dinmica dos mesmos? eliminada Qual a importncia da lgica para a criao de algoritmos e programao? 2- O que um algoritmo? D exemplos. 3- O que so dados e informaes? 4- Qual o princpio bsico do processamento de dados? questo eliminada O que uma instruo? D exemplos. 5- Quais so as caractersticas de um algoritmo? 6- Qual a importncia dos algoritmos? 7- Cite os passos bsicos para criar algoritmos.
Algoritmos e Ling.de Programao Introduo
21
Resolva:
Um homem est margem de um rio com uma raposa, uma dzia de galinhas e um saco de milho. Ele pretende atravessar o rio com a sua carga numa canoa que s comporta ele e uma das suas cargas. Ele no pode deixar a raposa com as galinhas, nem as galinhas com o milho. Qual a sequncia da passos (algoritmo) para atravessar o rio e chegar outra margem com a raposa, as galinhas e o milho?
Algoritmos e Ling.de Programao Introduo
22
23
24
Escreva os algoritmos:
Escreva a sequncia de passos (algoritmo) necessrios para:
Calcular a rea de um retngulo Escovar os dentes Fritar um ovo
25
26
Linguagem de mquina
O computador, nativamente, s entende uma linguagem: a linguagem (ou cdigo) de mquina, que uma linguagem que:
Tem grau de dificuldade acentuado Requer do programador um conhecimento da arquitetura interna do hardWare
27
28
29
31
32
33
34
35
Linguagens de mdio nvel: C, C++ Linguagens de baixo nvel: Assembly e Linguagem de mquina
MQUINA
Algoritmos e Ling.de Programao Introduo
36
Compilador
Cdigo objeto
Linkeditor
Programa executvel
bibliotecas
Algoritmos e Ling.de Programao Introduo
37
Compilador: (ou tradutor) programa que traduz um programa fonte em uma linguagem para um cdigo objeto ou linguagem de mais baixo nvel Cdigo objeto: (ou cdigo intermedirio). Cdigo resultante da compilao. Ainda no executvel diretamente pelo computador.
Algoritmos e Ling.de Programao Introduo
Normalmente so arquivos com extenso definida pela LP: .C , .PAS , .JAVA , .PHP , etc
38
39
40
41
42
Ambientes de desenvolvimento
So ambientes de desenvolvimento que integram diversas ferramentas para a criao de programas em uma linguagem de programao Tambm chamados de IDEs (Integrated Development Environment) Exemplo de ferramentas encontradas nos IDEs:
Editor de textos adequado para a programao Ajuda (Help) on-line Compilador, linkeditor e depurador integrados Ferramentas para desenho de janelas (formulrios)
Algoritmos e Ling.de Programao Introduo
43
Desenvolvimento de softWare
Segue um ciclo de vida
Anlise: definio do QU o programa dever fazer Projeto: definio de COMO o programa executar seu objetivo Implementao: codificao (criao de um ou mais programas em uma linguagem) Testes: testes isolados e de integrao
44
Programao de computadores
O que preciso saber para programar?
Noes de algoritmos e lgica de programao Conhecer a estrutura, comandos e smbolos da linguagem de programao escolhida Para linguagens de baixo nvel, conhecer a arquitetura do hardWare Prtica... Muita prtica
45
Atividade: Questionrio 2
Qual a linguagem nativa do computador e qual as caractersticas da mesma? O que so linguagens de programao? Cite exemplos. Quais as caractersticas das linguagens de programao? Como classificam-se as linguagens de programao quanto ao: (d exemplos de cada grupo) Explique o funcionamento dos diferentes tipos de LPs
Grau de dificuldade Modo de execuo
46
47
Estruturao de algoritmos
So formas possveis de resoluo e representao de algoritmos
Resoluo
Sequencial Condicional Repetio Linguagem natural / descrio narrativa Fluxograma Diagrama de Chapin Pseudocdigo
48
Representao
Estruturas de resoluo
Ao buscar uma soluo de um problema criando um algoritmo, sempre teremos pelo menos uma das seguintes estruturas:
Resoluo Sequencial: sequncia linear de instrues, uma aps a outra Resoluo Condicional: existncia de condies para executar algumas instrues. Resoluo com Repetio: algumas instrues precisam ser executadas vrias vezes.
Algoritmos e Ling.de Programao Introduo
49
Estruturas de representao
Linguagem natural / descrio narrativa Fluxograma Diagrama de Chapin Pseudocdigo
50
Linguagem natural
Apesar de ser possvel escrever algoritmos para pessoas usando a linguagem natural, ela no adequada para a construo de algoritmos para o computador No tem caractersticas das LPs:
No tm rigidez sinttica:
Traga caneta azul ou preta. Traga caneta (Azul ou preta)
Fluxograma
So representaes grficas de algoritmos:
Formas geomtricas para representar o incio, trmino e as instrues a serem executadas Setas para indicar o fluxo das aes
53
54
Fluxograma: exemplo
Algoritmo em forma de fluxograma, para solicitar dois nmeros e mostrar qual o maior: sim
Maior
Incio Leia num1, num2
Num1>num2?
no
num2
num1
Maior
55
Fluxograma
Vantagens:
Facilidade proporcionada para compreenso do funcionamento Facilmente entendvel por pessoas visuais
No uma representao prtica: a correo implica em alterar vrios desenhos Inadequado para algoritmos complexos e longos
Desvantagens:
Inadequado para uso como ferramenta principal Recomendvel apenas para representar a idia geral de um algoritmo ou como ensaio para criao da soluo
Algoritmos e Ling.de Programao Introduo
56
Diagrama de Chapin
Criado por Ned Chapin a partir de trabalhos de Nassi-Shneidermann Apresenta uma viso hierrquica e estruturada da lgica do programa
57
58
Pseudocdigo
Forma para a representao de algoritmos rica em detalhes, como a definio dos tipos das variveis usadas no algoritmo. Assemelha-se forma como os programas so escritos. Para traduzir o pseudocdigo para uma linguagem de programao, basta conhecer o vocabulrio e regras sintticas da linguagem. Busca a rigidez sinttica e semntica, porm sem o detalhamento exigido nas linguagens de programao
Algoritmos e Ling.de Programao Introduo
59
60
Pseudocdigo - exemplo
Pseudocdigo referente ao problema do maior nmero:
Algoritmo Maior Var num1, num2, maior: inteiro: Inicio Leia(num1,num2); se (num1>num2) ento maior num1; seno num2; maior fimse; escreva(maior); Fim
61
Atividade questionrio:
Quais as estruturas bsicas de resoluo de problemas com algoritmos? Quais as formas de representao de algoritmos?
Qual a caracterstica, vantagens e desvantagens de cada uma delas? Qual a mais adequada para representao de algoritmos?
62