Universidade Federal Rural de Pernambuco

Tamanho: px
Começar a partir da página:

Download "Universidade Federal Rural de Pernambuco"

Transcrição

1

2 Universidade Federal Rural de Pernambuco Reitor: Prof. Valmar Corrêa de Andrade Vice-Reitor: Prof. Reginaldo Barros Pró-Reitor de Administração: Prof. Francisco Fernando Ramos Carvalho Pró-Reitor de Extensão: Prof. Paulo Donizeti Siepierski Pró-Reitor de Pesquisa e Pós-Graduação: Prof. Fernando José Freire Pró-Reitor de Planejamento: Prof. Rinaldo Luiz Caraciolo Ferreira Pró-Reitora de Ensino de Graduação: Profª. Maria José de Sena Coordenação de Ensino a Distância: Profª Marizete Silva Santos Coordenação Acadêmica: Coordenação Conteúdo: Coordenação de Ambiente Virtual: Coordenação Pedagógica: Coordenação de Infra-Estrutura e Pólos: Produção Gráfica e Editorial Capa e Editoração: Allyson Vila Nova, Rafael Lira e Ana Carolina Lobo Revisão Ortográfica: Ilustrações: Coordenação de Produção: Marizete Silva Santos

3

4 Sumário Carta aberta aos alunos... 5 Capítulo 1 - Conceitos Básicos sobre Lógica de Programação e Algoritmos 7 Objetivos do Capítulo Conteúdo Programático do Capítulo Unidade 1 Introdução a Algoritmos e à Lógica de Programação... 9 Fases Básicas da Construção de Algoritmos Representação de Algoritmos Conceitos Básicos sobre Linguagens... 20

5 Carta aberta aos alunos Para a maior parte dos alunos que ingressa em algum curso de informática, em qualquer nível (ensino técnico ou superior), uma grande curiosidade ou desejo é aprender a programar um computador. Fazer o computador fazer o que se quer. Daí vem uma grande questão: qual o caminho a percorrer para atingir esse objetivo? Até porque essa não é uma tarefa fácil para a maior parte das pessoas. É aí que esta disciplina de Introdução à Programação entra, porque antes de começar a programar, você precisa desenvolver a sua lógica de programação, precisa saber construir um algoritmo. Mas o que danado é um algoritmo? Um algoritmo é um conjunto de passos bem definidos para chegar à resolução de um problema, algo como uma receita, um passo a passo. Como todo programa de computador objetiva resolver um problema, sempre você vai precisar construir um algoritmo para iniciar a programação. Algumas pessoas consideram uma perda de tempo aprender algoritmos e querem logo passar para uma linguagem de programação diretamente. Porém, aprender algoritmo não é uma perda de tempo antes da programação, mas a programação é que pode se tornar uma perda de tempo quando não se parou para raciocinar sobre qual algoritmo deve ser aplicado. Pense assim: não se pode construir uma casa, sem os seus alicerces. Ou até você poderia, mas a casa não ficaria de pé muito tempo. E aí, você gostaria de construir uma casa que pode vir a cair? Além disso, de uma forma ou de outra, o algoritmo sempre vai existir, mesmo que você diga que não o escreveu, ele existe! Mesmo que apenas no seu pensamento! Isso porque, para programar, você sempre vai precisar organizar as idéias, a fim de definir os passos que resolverão o problema e vai precisar estabelecer a ordem que esses passos deverão ser executados. E isso, amigo, construir um algoritmo será uma das primeiras coisas que você vai aprender nesta disciplina! Depois, já sabendo definir passos, receitas para resolução de problemas, essa receita, esses passos, serão convertidos para uma linguagem de programação que o computador entenda. E aí sim, você vai começar verdadeiramente a programar! Porém, amigos, não vou iludi-los, não é um caminho fácil e haverá momentos que você sentirá vontade de desistir, momentos que parecerá que nada tem lógica! Mas, não desista! Você verá que a prática, as tentativas e erros vão lhe ajudar a amadurecer e alguns algoritmos que pareciam um GRANDE desafio, em algum tempo, vão se tornando mais fáceis. Basta ter perseverança, exercitar bastante e colocar a cuca pra funcionar!

6 Lembre-se! Essa disciplina é a base para muita coisa que vem pela frente no curso. E é o grande diferencial entre quem sempre vai apenas usar o computador e quem vai fazer o computador fazer exatamente o que se quer que ele faça! E aí, vamos programar? Sandra de Albuquerque Siebra

7 Capítulo 1 - Conceitos Básicos sobre Lógica de Programação e Algoritmos Carga horária do capítulo: 30 horas Objetivos do Capítulo 1 Apresentar os conceitos básicos sobre algoritmos e lógica de programação. Apresentar formas distintas para representação do raciocínio da lógica algorítmica Apresentar os tipos de problema algorítmicos Apresentar componentes básicos de um programa em linguagem algorítmica (pseudocódigo). Desenvolver a lógica de programação fazendo uso, de forma ainda básica, de elementos, variáveis, operadores, expressões, estruturas seqüenciais, estruturas condicionais e estruturas de repetição. Conteúdo Programático do Capítulo 1 Unidade 1 Introdução a Algoritmos e Linguagens (10 horas) Noções de Lógica de Programação e Algoritmos Fases Básicas da Construção de Algoritmos. Representação de Algoritmos: fluxogramas, português estruturado e linguagem algorítmica (pseudocódigo) Conceitos Básicos de Lógica de Programação e Linguagens de Programação 7

8 Unidade 2 Linguagem Algorítmica (20 horas) Identificadores Constantes, Variáveis e Tipos de Dados Operadores e Expressões (aritméticos, relacionais e lógicos) Instruções Primitivas (entrada e saída) Sintaxe e Semântica Estrutura seqüencial (início/fim) Estruturas de Decisão (simples, composta e múltipla) Estruturas de Repetição (condicional e com contador) Dicas para escrever bons algoritmos Cada unidade conterá exercícios para fixação do assunto apresentado, assim como indicações de leituras adicionais. A Unidade 1 exigirá 10 horas de sua dedicação e a Unidade 2, o dobro de dedicação (20 horas). 8

9 Unidade 1 Introdução a Algoritmos e à Lógica de Programação A programação é a arte de fazer com que o computador faça exatamente o que desejamos que ele faça. Dessa forma, programar é criar uma rotina para que, seguindo uma lógica passo-a-passo, possamos alcançar a resolução de um problema computacional. A esse passo a passo para resolução do problema, chamamos de algoritmo. A palavra ALGORITMO pode parecer estranha, mas fazemos uso de algoritmos constantemente na nossa vida cotidiana, nas mais diversas situações (ex: para acordar, para dirigir, para fazer a barba, para cozinhar, etc). Vamos exemplificar melhor. Olhando para o quadro I, seria ele um algoritmo? Quadro 1 - Seria este um algoritmo? Para resolver um problema qualquer é necessário que seja, primeiramente, encontrada uma maneira de descrever este problema de uma forma clara e precisa. Depois, é preciso que encontremos uma seqüência de passos que permitam que o problema possa ser resolvido. Justamente a essa seqüência de passos chamamos algoritmo. Logo, como o quadro I descreve os passos para resolver o problema de trocar um pneu furado, ele é um algoritmo. Outro exemplo clássico de um algoritmo é uma receita de bolo. Se você 9

10 seguir a receita direitinho, ao final, você vai ter um bolo pronto. Logo, escrever um algoritmo nada mais é do que criar uma receita para resolver um problema qualquer (e no nosso caso, essa receita vai ser executada pelo computador). Você poderia me perguntar: qualquer um pode aprender a construir um algoritmo? E prontamente eu responderia: Claro que pode! Apesar de alguns acharem que um programador nasce com o dom de programar, não é bem assim. Ser um bom programador, pegar os macetes da lógica de programação, conseguir construir o algoritmo que vai dar origem ao programa é algo que pode ser aprendido e desenvolvido por qualquer um que decida abraçar esse estudo com perseverança e interesse. Ah, também é necessário praticar. Sem praticar, nunca vai ser fácil construir um algoritmo. Outro fator é possuir o desejo de programar computadores, é realmente querer programar. Caso contrário, será sempre uma perda de tempo. Fazer o que não se gosta, simplesmente por fazer, é perda de tempo. Para aprender a construir um algoritmo, uma coisa que atrapalha, é que há poucas publicações especializadas que tratam do assunto de maneira clara e em um nível que os simples mortais possam entender e estudar. Além disso, muitas vezes são adotados livros sobre determinada linguagem de programação como livros-texto para aprender a programar. Porém, esses livros, nessa fase inicial, não são muito úteis, virão a ser depois. Porque, uma vez que você aprenda a construir um algoritmo, você vai passar esse algoritmo para alguma linguagem de programação qualquer com facilidade (tal como C ou Pascal) e aí, sim, o algoritmo vai ser executado pelo computador e você estará começando a programar! Logo, sabendo construir um algoritmo, você poderá, futuramente, programar em qualquer linguagem, com poucas adaptações. Bom, vamos agora dar uma definição forma. Podemos dizer que: Algoritmo é um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico, em um tempo determinado (KNUTH, 1997). A partir dessa definição, quais características podemos dizer que um algoritmo tem? Bem, um algoritmo apresenta características próprias que o distinguem de um simples conjunto de ações, são elas: Um algoritmo sempre termina, ele deve ter um fim. Na verdade, cada ação do algoritmo, cada passo, deve ser simples o bastante de forma a ser executada em um intervalo 10

11 de tempo finito. As instruções do algoritmo devem estar em uma seqüência lógica, ou seja, deve existir uma ordem de execução dos passos da seqüência. Cada ação é descrita precisamente e sem ambigüidades, ou seja, o algoritmo não pode dar margem à dupla interpretação. Um algoritmo sempre produz um ou mais resultados (saídas), podendo não exigir dados de entrada. Parsons (1995) acrescenta a estas características a obrigatoriedade de um algoritmo sempre solucionar um determinado problema, justamente, para que tenha uma utilidade. Um ponto importante a destacar é que um algoritmo é uma solução e não a solução de um problema. Isso porque um problema pode ser resolvido de diversas maneiras, logo, pode ser resolvido usando diversos algoritmos diferentes. Por exemplo, um algoritmo para trocar uma lâmpada queimada, pode variar. Para trocar a lâmpada um sujeito A pode dizer que precisa subir em uma cadeira para alcançar a lâmpada; outro sujeito B pode descrever o mesmo algoritmo, mas agora subindo em uma escada e ainda, um sujeito C pode ser alto o suficiente para no algoritmo dele não precisar nem de cadeira, nem de escada para trocar a lâmpada. Porém, o problema a resolver (trocar a lâmpada) é o mesmo e qualquer um dos algoritmos resolverá esse problema. Figura 1 11

12 E tudo pode virar um algoritmo? Podemos construir um algoritmo para qualquer coisa? Qualquer tarefa que siga um padrão poderá ser representada por um algoritmo. Por exemplo, qual o próximo número da seqüência numérica: 2, 4, 6, 8,? Obviamente, estamos apresentando os números pares. Logo, o valor seguinte é o número anterior acrescentado de duas unidades, sendo próximo valor da seqüência o número 10. E agora, a seqüência ? Qual o próximo número? Se olhar bem, com exceção dos dois primeiros números que são o início da seqüência, todos os outros são a soma do último número escrito e de seu antecessor. Assim sendo, o próximo número da seqüência é 21 (ou seja, o último número 13 + o seu antecessor 8). Como há um padrão, seria fácil construir um algoritmo para essas tarefas. Porém, se considerarmos a seqüência 0,1,4,9,17,25,, qual seria o próximo número? Complicado? Como não conseguimos definir uma lógica para o cálculo do próximo número, nós não conseguiríamos construir um algoritmo para essa tarefa, pois não se teria uma fórmula para calcular quem vem a seguir. Dessa forma, para podermos construir um algoritmo para um problema, esse problema tem de ter uma lógica. Senão, não será possível solucionálo de forma a ser executado por um computador. Vale lembrar que, algumas vezes, pode ser complicado achar a lógica do problema a primeira vista, mas quanto mais você praticar, mais fácil será encontrála. Fases Básicas da Construção de Algoritmos Sim, e agora, como fazemos para começar o algoritmo? Para montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais: Entrada, Processamento E Saída. Essa definição vai ajudar você a encontrar a resolução do problema. Entrada: São os dados de entrada do algoritmo, os valores que ele vai usar no processamento para chegar à solução do problema. Esses dados de entrada, geralmente, são fornecidos pelo usuário, fazendo uso de algum dispositivo de entrada de dados, tal como, um teclado, um mouse ou um leitor de código de barras (vide Figura a seguir). 12

13 Figura 2 - Dispositivos para Entrada de Dados Processamento: São os procedimentos utilizados para chegar ao resultado final, para alcançar a resolução do problema. Esses procedimentos são executados no processador do computador e os valores parciais são armazenados na memória (memória RAM). Saída: São os dados já processados. É o resultado do processamento. Estes dados de saída são apresentados em algum dispositivo de saída. Por exemplo, a tela de um monitor (vide Figura aseguir). Figura 3 - Dispositivo de Saída de Dados Sendo assim, se formos pensar, veremos que muitas coisas que fazemos são um algoritmo e possuem essas três fases. Por exemplo, quando eu falo com alguém, eu espero o que a pessoa vai me dizer (entrada), então penso (processamento) e dou uma resposta para a pessoa (saída). Sempre ficará mais fácil começar a organizar a seqüência lógica do algoritmo, se você identificar no problema essas três fases: 13

14 Figura 4 Por isso, antes de construir um algoritmo, pare para pensar e identificar: Quais dados são necessários para começar o algoritmo? Que dados ele vai precisar para executar? ENTRADA Quais são os cálculos que precisam ser feitos e quais decisões precisam ser tomadas? PROCESSAMENTO Quais dados devem ser exibidos para o usuário? SAÍDA Para ilustrar, suponha um algoritmo para calcular a média aritmética de dois números. Quais seriam as fases desse algoritmo? Entrada: os dois números (afinal, para calcular a média, você precisa ter os dois valores) Processamento: o cálculo da média (que seria somar os dois números e dividir por dois) Saída: a média (que era o objetivo do problema) Representação de Algoritmos Agora que já identificamos as etapas do problema, como representar isso em um algoritmo? Um algoritmo pode ser representado de três formas: Descrição Narrativa, Fluxograma e Linguagem Algorítmica, também chamada de Pseudocódigo. A seguir, vamos descrever 14

15 melhor cada uma dessas representações. Descrição Narrativa Faz uso do português normal, sem tirar, nem por, com o objetivo de descrever os passos principais da solução para um problema. Uma receita de bolo, por exemplo, é uma descrição narrativa. Outros exemplos são tomar banho (ver Quadro 2) e calcular a média de um aluno (ver Quadro 3). Figura 5 Quadro 2 - Algoritmo para tomar banho (Descrição Narrativa) 15

16 Quadro 3 - Algoritmo para Calcular a Média de um Aluno (Descrição Narrativa) Qual a vantagem? Todos falamos e conhecemos o português e sabemos, bem ou mal, fazer uma descrição, uma lista de atividades. E as desvantagens? Bem, primeiro, não há um padrão. Cada pessoa pode escrever como quiser (em tópicos, sem tópicos, usando verbos no infinitivo ou não, etc). Outra desvantagem é a imprecisão, uma vez que a especificação pode não ficar clara ou ficar ambígua, ou seja, cada um pode interpretar de uma forma. Por exemplo, em algumas receitas de bolo você pode encontrar a frase leve ao forno até assar. Algumas pessoas poderiam saber exatamente quando o bolo está assado, outras pessoas não. Levando a pergunta e aí, quando o bolo estará assado? Por último, há o perigo de se escrever muito para dizer pouca coisa ou da pessoa não saber se expressar bem e ser confusa na escrita. Fluxograma Tentando eliminar a ambigüidade e procurando fazer uso de uma ferramenta já usada na área de administração (o fluxograma), passouse a fazer uso de símbolos gráficos padronizados para representar algoritmos. Nessa representação formas geométricas diferentes implicam em ações, instruções ou comandos distintos. Isso pode ajudar no entendimento do algoritmo e a eliminar a ambigüidade. Esta forma é intermediária à descrição narrativa e ao pseudocódigo (subitem seguinte), pois é mais precisa do que a primeira, porém, não se preocupa com detalhes de implementação do programa, como o tipo das variáveis usadas. 16

17 Os principais símbolos do fluxograma são apresentados na Figura 6, ao lado de cada símbolo está a sua utilização. Além desses símbolos, as setas que os unem, indicarão a direção do fluxo de execução do algoritmo. E dentro de cada símbolo, deve ser escrito o que ocorrerá naquela fase. Figura 6 - Simbologia do Fluxograma Vamos ilustrar o uso para que você possa entender melhor. Suponha um algoritmo para calcular a média de um aluno e apresentar ela para o usuário. Como ele ficaria representado usando fluxograma? Começamos o fluxograma usando o símbolo de início. Depois, dentro do símbolo para entrada de dados, colocamos as duas notas do aluno que foram chamadas de N1 e N2 No símbolo de processamento ficou o cálculo da média do aluno. Dessa forma Média recebe (uso do símbolo para indicar a atribuição de um valor) o valor de N1 somado com N2 e dividido por 2. Depois que a média é calculada, usamos o símbolo de saíd a de dados para dizer o que queremos que seja apresentado ao usuário Finalmente, o símbolo de Fim é usado para indicar que o fluxograma acabou. Figura 7 - Fluxograma para Calcular a Média de um aluno E, agora, se fosse o mesmo algoritmo descrito no Quadro 3 (Calcular a Média de um Aluno), onde se precisa checar se o aluno foi aprovado ou não?. Como ficaria? 17

18 Figura 8 - Fluxograma mais completo para calcular a média de um aluno Se prestar atenção toda a primeira parte do algoritmo é igual ao fluxograma anterior. Porém, a partir desse ponto, precisamos usar o símbolo de decisão. O texto que é colocado dentro desse símbolo, é o que você quer questionar. No caso A média é maior ou igual a 6,0? (expresso como Média >= 6,0 ). A partir daí, se a resposta a pergunta for verdadeira (V), no símbolo de saída de dados vemos a palavra aprovado. Senão, se a resposta a pergunta for falso (F), dentro do símbolo de saída de dados colocamos a palavra reprovado. Em qualquer um dos casos, depois de mostrar na tela a mensagem apropriada, o fluxograma termina, indicando que o algoritmo termina aí. Para isso, usamos o símbolo de Fim. Qual a vantagem do fluxograma? Ele é uma ferramenta conhecida em outras áreas fora a informática. Além disso, as figuras dizem muito mais que palavras, podem facilitar o entendimento do que deve ser feito no algoritmo. Adicionalmente, o fluxograma tem um padrão mundial de símbolos bem definidos, logo, poderá ser compreendido em qualquer lugar. E as desvantagens? Apesar de mais claro para ler, evitando a ambigüidade, o fluxograma dá pouca atenção aos dados, não oferecendo recursos para descrevêlos ou representá-los. Isso vai fazer diferença na hora de implementar mesmo o algoritmo em uma linguagem de programação. Porque quando estiver programando, você vai precisar definir o tipo (número inteiro, número com ponto flutuante, caracter, etc) de cada variável. 18

19 Além disso, o fluxograma pode se tornar complicado de ler e entender, à medida que cresce muito (por exemplo, as linhas podem começar a se cruzar). Linguagem Algorítmica ou Pseudocódigo Essa linguagem surgiu para tentar suprir as deficiências das outras representações. Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, mas já lembram um pouco a estrutura de uma linguagem de programação estruturada, ou seja, a pseudolinguagem se assemelha muito ao modo como os programas são escritos. Isso vai permitir que os algoritmos nela representados possam ser traduzidos, quase que diretamente, para uma linguagem de programação. Como essa é a forma de representação mais utilizada, nós vamos explicá-la, em detalhes, na Unidade 2 (tenha só um pouquinho de paciência!). Por isso, agora, só para ilustrar, vamos apresentar o mesmo algoritmo de calcular a média de um aluno (do Quadro 3) usando a linguagem algorítmica. algoritmo calcularmedia var N1, N2, Media : real inicio leia(n1, N2) Media <- (N1 + N2)/2 se media>=6 entao escreva( aprovado ) senao escreva( reprovado ) fimse fimalgoritmo As palavras em negrito são palavras reservadas da linguagem algorítmica. 19

20 Quais as vantagens da linguagem algorítmica? Apesar de lembrar uma linguagem de programação, ela usa o português como base, e isso pode facilitar para quem está aprendendo. Ela é a forma de representação mais poderosa de todas porque nela é possível definir, com riqueza de informações, quais os dados que serão utilizados, o tipo dos mesmos e até se eles serão agrupados (estruturados) de alguma forma (para formar conjuntos). Além disso, a passagem do algoritmo em linguagem algorítmica para uma linguagem de programação qualquer é quase imediata. E, já existem ferramentas para executar um programa escrito em linguagem algorítmica (não se preocupe, vamos usar uma!) Quais as desvantagens? Ter de fazer uso de uma linguagem que não é real para trabalho (porque ela é uma pseudo linguagem). Outro ponto é que a linguagem algorítmica não é padronizada (podem existir várias versões da mesma). Conceitos Básicos sobre Linguagens Essa unidade se chama Introdução a Algoritmos e à Lógica de Programação. Até agora, só falamos de algoritmos, onde entra a lógica de programação? Bem, antes de definir lógica de programação, vamos definir o que é lógica. Lógica é a ciência que estuda as leis do raciocínio; é a correção/validação do pensamento; é o encadeamento, ordenação de idéias; É a arte de bem pensar. Por exemplo, usando a lógica, temos que se Rosa é mãe de Ana; Paula é filha de Rosa e Júlia é filha de Ana. Então, a partir do que foi dito, podemos dizer que Júlia é neta de Rosa e sobrinha de Paula. Outro exemplo, se o guarda-roupa está fechado e a camisa que quero está no guarda-roupa, então, preciso primeiro abrir o guarda-roupa para poder pegar a camisa. Entendeu como funciona a lógica? Ao nos depararmos com um problema, usamos o conhecimento que já temos para tentar deduzir, produzir uma nova informação. E agora, a lógica de programação, o que é? 20

21 Lógica de Programação é o encadeamento lógico de instruções para o desenvolvimento de programas. Pela definição acima, podemos dizer que lógica de programação é o que você utiliza para analisar um problema, definir passos para resolvê-lo e implementá-lo em uma linguagem de programação. Ou seja, é o raciocínio usado para criar um algoritmo para resolver um determinado problema e depois transformar esse algoritmo em um programa. E o que é um programa? Programa é a implementação das instruções de um algoritmo em uma linguagem de programação. Uma instrução representa um passo do algoritmo. É uma ação elementar que deve ser executada. Ou seja, uma ação que não pode ser subdividida. Por exemplo, trocar a lâmpada não é uma instrução, pois é uma ação que pode ser subdividida em várias outras (desligar o interruptor da luz, subir na cadeira, girar a lâmpada queimada até solta-la do bocal, colocar a lâmpada nova no bocal, etc). Já desligar o interruptor da luz é uma ação elementar, logo, ela é uma instrução do algoritmo para trocar uma lâmpada. E a linguagem de programação, o que é? Ela é o conjunto finito de palavras, comandos e instruções escritos com o objetivo de orientar a realização de uma tarefa pelo computador. Em computação, uma linguagem de programação é a ferramenta de comunicação entre o programador que visa resolver um problema e o computador que irá ajudá-lo a resolver este problema. Alguns exemplos de linguagem de programação são C, Pascal, Java, C#, PHP e Phyton. Cada uma dessas linguagens tem suas características, palavras reservadas, comandos, regras e convenções para conversar com o computador. Porém, há um problema aí. Como os computadores vão entender o que é escrito em uma linguagem de programação (que é uma linguagem de alto nível), se eles só entendem linguagem de máquina (que é uma linguagem de baixo nível)? Epa, peraí... para poder responder a essa pergunta, vamos primeiro esclarecer alguns dos termos usados acima. Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pelo computador. O computador 21

22 trabalha somente com códigos numéricos, baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos, ausente (zero) e presente (um). Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta e ambígua) e o da linguagem de máquina (muito rápida, porém complexa para ser utilizada por gente normal ). Este é o conceito de nível de linguagem: linguagem de alto nível são aquelas mais próximas da linguagem humana (dá pra entender o que está escrito); linguagem de baixo nível são aquelas mais semelhantes à linguagem de máquina. Para deixar mais claro, vamos detalhar um pouco mais o que é essa tal de linguagem de máquina. Figura 9 Todas as instruções que o computador precisa executar ficam codificadas na sua memória (memória RAM), em uma linguagem própria que é a linguagem de máquina (a única que ele entende). A linguagem de máquina só apresenta ZEROS e UNS. Um exemplo de instrução seria O resultado da execução dessa instrução variaria de acordo com o tipo de computador utilizado: um Macintosh fará uma coisa, um computador da linha PC fará outra, etc. Pois cada computador tem seu conjunto único de instruções, definido pelo fabricante do chip. Cada instrução identifica uma alteração e/ou consulta do valor de uma posição da memória do computador. Como a linguagem de máquina é bem complicada e muda de computador para computador, construir um programa diretamente nessa linguagem pode ser muito difícil, tedioso e demorado. Dessa forma, os programas são escritos em linguagens de alto nível (como C ou Java, por exemplo) e são convertidos (traduzidos) para a linguagem de máquina específica, para que possam ser executados pelo computador. Por exemplo, vamos supor uma soma de dois valores, tendo que o val2 vai receber a soma dele mesmo com o val1. Essa instrução seria facilmente escrita em uma linguagem de 22

23 alto nível (val2 <- val1 + val2), porém, em linguagem de máquina, ela daria origem a bem mais instruções (vide Figura 7). Por isso, seria necessário usar um tradutor para converter a linguagem de alto nível em linguagem de máquina (mais fácil, né?). Vale ressaltar que um programa em linguagem de alto nível que foi traduzido para executar em determinado computador, precisa ser traduzido novamente (e muitas vezes reescrito), para que possa ser executado em outro computador que não tenha o mesmo conjunto de instruções. E como é feita essa tradução? A tradução é feita usando um tradutor (simples, não?). Agora, explicando melhor... tradutor, no contexto de linguagens de programação, é um programa que recebe como entrada um programa em linguagem de alto nível (chamado programa-fonte) e produz como saída as instruções deste programa traduzidas para linguagem de máquina (chamado programaobjeto). Existem basicamente três tipos de tradutores: Compilador, Interpretador e Montador. Porém, no contexto desta disciplina apenas vamos trabalhar com os dois primeiros tipos e, por isso, apenas eles serão explicados a seguir. Figura 10 - Exemplo de Tradução Compilador: traduz de uma vez só todo o programa escrito em linguagem de alto nível (código-fonte) para um programa equivalente escrito em linguagem de máquina (código-objeto). Interpretador: traduz (sem gerar código-objeto) e em seguida executa, uma a uma, as instruções de um programa em linguagem de alto nível (código-fonte) Vamos tentar ilustrar isso... vamos supor que existe um programa escrito em uma linguagem de alto nível e que essa linguagem seja a língua inglesa. Suponha, também, que o computador é você e você só entende o velho e bom português (a sua linguagem de máquina, linguagem nativa). Nesse caso, você irá precisar de um tradutor. Você 23

24 poderia usar, então, um tradutor do tipo compilador ou um tradutor do tipo interpretador. O tradutor do tipo Compilador iria pegar todo o programa escrito em inglês (linguagem de alto nível) e iria traduzir ele para um outro programa em português (linguagem de máquina), para que você pudesse pegar esse programa traduzido e executar (no caso, ler), vide Figura 8. Figura 11 - Funcionamento do Compilador Já o tradutor do tipo Interpretador, iria pegar, uma a uma, as palavras do programa escrito em inglês (linguagem de alto nível) e iria traduzir cada palavra (instrução) para o português (linguagem de máquina). E cada palavra traduzida seria imediatamente lida (executada) pelo computador, sem gerar nenhum outro arquivo (código-objeto), vide Figura 10. Figura 12 - Funcionamento do Interpretador Algumas informações adicionais sobre compiladores e interpretadores são: O código objeto (programa traduzido para a linguagem de máquina) que é produzido por um compilador pode ser executado várias vezes sem a necessidade de re-compilação. Você só precisa re-compilar se o código fonte for alterado. Todo programa interpretado deve re-executar todo o processo de interpretação independentemente de ter havido ou não modificações no seu código fonte. Isso se dá porque nenhum código-objeto é gerado. 24

25 Por não exigirem mais nenhum processo de conversão para linguagem de máquina, um programa que já tenha sido compilado uma vez tende a ser executado mais rapidamente que um programa que precise ser interpretado (que sempre terá que executar o processo de interpretação completo). Aprenda praticando Para que possamos começar a desenvolver algoritmos na próxima unidade, é importante que você já consiga especificar as fases de um problema e encaixar essas fases em uma representação de algoritmo das que a gente detalhou até agora (descrição narrativa ou fluxograma). Dessa forma, vamos dar um exemplo, para que depois você possa fazer os exercícios, ok? Vamos analisar o seguinte problema: Ler um valor de temperatura em Fahrenheit e calcular o seu valor correspondente em Celsius e, depois, apresentar esse valor ao usuário. Um problema de física! Bem, como você pode não estar lembrado da fórmula, vou lhe adiantar: TC = 5/9 * (TF 32) onde TC = Temperatura em graus Celsius e TF = Temperatura em graus Fahrenheit Sabendo disso, quais seriam as fases do problema (entrada, processamento e saída) e como ficaria a representação desse algoritmo em descrição narrativa e usando fluxograma? Se lermos o problema, vamos ver que a primeira coisa que precisamos é ler um valor de temperatura em Fahrenheit. Então ENTRADA = Valor em Fahrenheit. Depois, precisamos usar a fórmula indicada para calcular o valor em Celsius. Logo, o PROCESSAMENTO é o cálculo do valor em Celsius. Por fim, o valor calculado em Celsius deverá ser impresso. Dessa forma, a SAIDA é o valor em Celsius. A partir daqui, usando a simbologia apropriada do fluxograma, basta apenas fazer o encaixe dentro do símbolo apropriado de cada uma dessas fases do problema. 25

26 Figura 13 Saiba Mais O assunto dessa unidade é básico e qualquer livro de algoritmos ou de lógica de programação terá no primeiro ou nos dois primeiros capítulos esse assunto. Sugiro, então, a leitura do capítulo 1 do livro-texto da disciplina: FORBELLONE, André Luiz. Lógica de Programação. Makron Books, 3ª. Edição, Atividade de Estudo Figura 14 Agora que já explicamos um bocado de coisas, que tal você fazer a sua parte, para ver se fixou bem os conceitos? Então, resolva os exercícios abaixo. 26

27 1. Escolha dois exemplos do seu cotidiano que poderiam ser descritos fazendo uso de algoritmos e represente esses exemplos através de descrição narrativa e de fluxograma. 2. Agora, que já praticou com exemplos mais simples, que tal representar através de descrição narrativa e fluxograma trocar uma lâmpada? 3. Vimos que uma parte importante da construção de um algoritmo é identificar as fases fundamentais do problema a ser resolvido (entrada, processamento e saída). Sabendo disso, identifique as fases de cada um dos problemas abaixo e depois, represente cada um dos problemas usando um fluxograma: Calcular e exibir a média ponderada de duas notas dadas, de tal forma que a nota1 tenha peso 6 e a nota2 tenha peso 4. Reajustar um salário inicial em 15 % 1 Calcular o desconto de 23% sobre o preço de um produto Checar se um determinado número fornecido pelo usuário é positivo (maior do que zero) ou negativo (menor do que zero). Imprima como resultado, as palavras positivo ou negativo, conforme o caso. 4. Com suas palavras, quais seriam as diferenças entre um compilador e um interpretador? 5. Qual a diferença entre algoritmo e programa? Resumo Atenção 1 Para calcular uma porcentagem, você deve multiplicar o valor pelo número da porcentagem e dividir por cem. Por exemplo, para calcular 10% de 30 reais, você multiplica 30 por 10 e depois, divide o resultado por 100. Dessa forma, você obteria o valor da porcentagem. 10% de 30 reais = (10 x 30)/100 = 300/100 = 3 reais. De um modo geral, considera-se que um algoritmo é uma descrição, passo a passo, de uma metodologia que conduz à resolução de um problema ou à execução de uma tarefa. Um algoritmo deve ser útil 27

28 (resolver o problema a que se propõe), finito (deve ter um fim), deve seguir uma seqüência lógica de passos e sempre produzir um ou mais resultados. O algoritmo pode ser representado de três formas distintas: descrição narrativa, fluxograma ou linguagem algorítmica. Cada uma dessas representações tem vantagens e desvantagens. Para desenvolver o algoritmo você precisa fazer uso da lógica de programação, que é o raciocínio necessário para resolver um dado problema. Depois que o algoritmo está pronto, você pode passálo para uma linguagem de programação, transformando assim o algoritmo em um programa. O programa para ser entendido pelo computador precisa estar em linguagem de máquina (linguagem de baixo nível). Logo para um programa em uma linguagem de programação qualquer (linguagem de alto nível) ser entendido pelo computador é necessário usar um tradutor. Esse tradutor pode ser um compilador ou um interpretador. Ao final dessa unidade, esperamos que você saiba: Definir o que é um algoritmo e sua utilidade Especificar as fases para construção de um algoritmo Representar por descrição narrativa e fluxograma problemas de pequena e média complexidade Diferenciar algoritmo e programa Diferenciar linguagem de alto nível e linguagem de baixo nível Diferenciar ou comparar um compilador e um interpretador Se você sabe tudo isso, parabéns! Se há algum ponto que ainda não entendeu, por favor, volte a ler o texto com calma e, se possível, faça a leitura adicional sugerida. Acho que isso vai ajudar bastante! Quando estiver pronto, avance para a próxima unidade. Na próxima unidade, iremos detalhar a linguagem algorítmica, que é uma das representações mais utilizadas de algoritmos. Vamos lá? 28

Técnicas de Programação

Técnicas de Programação Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir

Leia mais

ALGORITMOS AULA 1. Profª Amanda Gondim

ALGORITMOS AULA 1. Profª Amanda Gondim ALGORITMOS AULA 1 Profª Amanda Gondim O que é lógica? NOÇÕES DE LÓGICA A lógica trata da correção do pensamento Ensina-nos a usar corretamente as leis do pensamento É a arte de pensar corretamente A forma

Leia mais

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009 PPM PROGRAMAÇÃO PARA MANUFATURA CONTEÚDO Lógica de programação Programação para manufatura Sistemas supervisorios 1 LÓGICA DE PROGRAMAÇÃO Abrangência Introduzir os conceitos básicos relacionados à lógica

Leia mais

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

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Introdução à Algoritmos Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Introdução aos Algoritmos: Conceitos Iniciais; Programa

Leia mais

4 O conceito de variável

4 O conceito de variável 4 O conceito de variável Para resolver problemas no computador é necessário manipular dados, sejam números ou caracteres. Se alguém precisa calcular o resultado de uma única conta provavelmente o melhor

Leia mais

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA Aula 02 - Algoritmos Disciplina: Algoritmos Prof. Allbert Velleniche de Aquino Almeida E-mail: allbert.almeida@fatec.sp.gov.br Site: http://www.allbert.com.br /allbert.almeida Conceitos Básicos Desde o

Leia mais

Formas de representar um algoritmo

Formas de representar um algoritmo Algoritmos e Lógica de Programação Construção de Algoritmos Conceitos Introdutórios Reinaldo Gomes reinaldo@cefet-al.br Como representar um algoritmo? Algoritmos podem ser representados, dentre outras

Leia mais

Sistema Computacional

Sistema Computacional Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes reinaldo@cefet-al.br O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.

Leia mais

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

INFORMÁTICA APLICADA AULA 02 ALGORITMOS UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 ALGORITMOS Profª ª Danielle Casillo ALGORITMOS Um algoritmo é uma sequência de instruções

Leia mais

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

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha Conceitos Lógica de Programação técnica de encadear pensamentos

Leia mais

I - CONCEITOS INICIAIS

I - CONCEITOS INICIAIS Sumário I - CONCEITOS INICIAIS... 2 Lógica de programação... 2 Algoritmo... 2 Instrução... 3 Programa de Computador... 3 Fases... 4 Diagrama de Blocos... 4 II - VARIÁVEIS... 5 Numéricas... 5 Cadeia ou

Leia mais

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO Introdução Resolução de problemas Encontrar uma maneira de descrever este problema de uma forma clara e precisa. Encontremos uma seqüência

Leia mais

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões Processamento de Dados aplicado à Geociências 1 AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO

Leia mais

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

Introdução à Programação. Ceça Moraes Introdução à Programação Ceça Moraes Conteúdo Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador 2 Lógica O que é lógica? Ciência que estuda as leis do raciocínio. Correção/validação

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 1 Apresentação da Disciplina Introdução a Algoritmos Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Apresentação da Disciplina 2 Atividades Plano de Ensino - Conteúdos

Leia mais

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. - Bibliografia - - Operadores - Criação de um algoritmo - Exercícios Aula 01 Colegiado de Engenharia da Computação Slide 1 O que é Algoritmo? Segundo o Dicionário Aurélio, a palavra algoritmo origina-se

Leia mais

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

Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução. Engenharia de Controle e Automação Programação I Prof. Ricardo Sobjak ricardo.sobjak@ifsc.edu.br Introdução Lógica Sequencia lógica Instruções s Programas Lógica Raciocínio estruturado (partindo-se do

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Pampa Campus-Bagé Algoritmos e Programação Aula 1 Apresentação da Disciplina Conceitos Introdutórios Prof. Julio Saraçol juliodomingues@unipampa.edu.br Slide1 APRESENTAÇÃO DA DISCIPLINA

Leia mais

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

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares 1 Introdução à Lógica de Programação Adaptação de Luis Otavio Alvares 2 Elaboração de um programa Problema Análise Programa Algoritmo 3 Processo de geração de um programa Análise do problema: Ler atentamente

Leia mais

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado.. Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Introdução aos Algoritmos A única diferença entre o difícil e o impossível é que o último demora um pouco mais de

Leia mais

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Aula 4B. Lógica e Algoritmos. Profª. Fabiany Fundamentos de Programação 1 Aula 4B Lógica e Algoritmos. Profª. Fabiany 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

Leia mais

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo. Algoritmos e Técnicas Lógica de Programação É a técnica de encadear pensamento para atingir determinado objetivo. 1 Algoritmos - Conceitos Um algoritmo é uma seqüência de ações (passos) finitas, bem definidas,

Leia mais

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Aula 06 1 Sumário Noções de lógica Representação do Conhecimento Lógica na Programação Lógica e Algoritmo: Resolução

Leia mais

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer Algoritmos e Estrutura de Dados I Conceitos de Algoritmos Prof. Elyssandro Piffer CONCEITO DE ALGORITMO O computador pode auxiliar em muitas tarefas, contudo ele não possui independência, não é inteligente,

Leia mais

Introdução a Programação

Introdução a Programação Introdução a Programação Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula 01 Informática e a Programação Roteiro Informática Pensar e Programar Atividades

Leia mais

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger Algoritmos e Linguagens de Programação Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger Conceitos Básicos Para dizer o que um computador deve fazer devemos programá-lo através de instruções

Leia mais

Capítulo 1 - Lógica e Algoritmos

Capítulo 1 - Lógica e Algoritmos 1. Introdução à Lógica de Programação Capítulo 1 - Lógica e Algoritmos A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir

Leia mais

Unidade 1 Conceitos básicos

Unidade 1 Conceitos básicos Unidade 1 Conceitos básicos Agenda Conceito de algoritmo Características Dificuldades Representação de algoritmos Etapas na solução de problemas Desafio 01 O lobo, a ovelha e o capim Você tem um lobo,

Leia mais

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian 1 Sumário Noções de lógica Representação do Conhecimento Lógica na Programação Lógica

Leia mais

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

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Introdução à Programação Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAIS SÃO OS COMPONENTES BÁSICOS DO HW DE UM SISTEMA COMPUTACIONAL?

Leia mais

Introdução à Programação de Computadores Parte II

Introdução à Programação de Computadores Parte II Introdução à Programação de Computadores Parte II Prof. Dr. Edson Pimentel Centro de Matemática, Computação e Cognição Objetivos Aprender a redigir rotinas comuns do dia-a-dia forma de algoritmos Conhecer

Leia mais

2. Criação de Algoritmos

2. Criação de Algoritmos 2. Criação de Algoritmos Neste capítulo, será visto o desenvolvimento de um algoritmo, regras, etapas e simbologias. 2.1 O que é Pseudocódigo? Fig.1: Ilustração de algoritmo Fonte: Internet Os algoritmos

Leia mais

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Funcionamento do computador. Conceito e definição de algoritmos Prof. Alex Camargo alexcamargoweb@gmail.com Funcionamento do computador

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação 1 Elaboração de um programa Problema Análise Programa Algoritmo 2 Processo de geração de um programa Análise do problema: Ler atentamente o enunciado do problema até

Leia mais

ALGORITMO: FASE 1 PARTE 1

ALGORITMO: FASE 1 PARTE 1 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE ALGORITMO: FASE 1 PARTE 1 Rhavy Maia Guedes rhavy.maia@gmail.com Algoritmo e Programação 2 Precisamos saber o que

Leia mais

Algoritmos e Linguagem de Programação I

Algoritmos e Linguagem de Programação I Algoritmos e Linguagem de Programação I Roberto Ferreira roberto.ferreira@lapa.ifbaiano.edu.br 2014.1 Módulo I Aula 3 Algoritmos Computacionais Na aula anterior vimos... Quais são os passos para solucionar

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Engenharia de Produção Prof. Carlos Noriega 1 LÓGICA DE PROGRAMAÇÃO CONCEITOS BÁSICOS ROTEIRO Representação Algorítmica Fases Básicas da Construção de Algoritmos Programação Estruturada

Leia mais

Unidade 2: Algoritmos e programação

Unidade 2: Algoritmos e programação Unidade 2: Algoritmos e programação 2.1. Algoritmos Os computadores estão sendo utilizados para resolver problemas cada vez de maior porte e complexidade. A utilização do computador para resolver problemas

Leia mais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Atividades Plano de ensino Conteúdos da disciplina, definição das datas, critérios de avaliação e bibliografias Início da matéria Conceito e definição de algoritmos

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Portugol. Tiago Alves de Oliveira

Portugol. Tiago Alves de Oliveira Portugol Tiago Alves de Oliveira Revisando Algoritmo: Sequência finita de passos que levam à execução de uma tarefa Claro e preciso. Ex. somar dois números Algoritmo precisa seguir uma sequência lógica

Leia mais

Conceitos e Representação de Algoritmos

Conceitos e Representação de Algoritmos BCC 201 - Introdução à Programação Conceitos e Representação de Algoritmos Guillermo Cámara-Chávez UFOP 1/37 Importância do estudo dos Algoritmos... antes que o computador possa executar uma tarefa, deve

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar

Leia mais

Algoritmos e Programação de Computadores Disciplina:

Algoritmos e Programação de Computadores Disciplina: Algoritmos e Programação de Computadores Disciplina: 113476 Profa. Carla Denise Castanho Universidade de Brasília UnB Instituto de Ciências Exatas IE Departamento de Ciência da Computação CIC 3. REPRESENTAÇÃO

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

CMP Algoritmos Algoritmos - Introdução Geral. Professor Vicente Paulo de Camargo

CMP Algoritmos Algoritmos - Introdução Geral. Professor Vicente Paulo de Camargo CMP1044 - s Professor Vicente Paulo de Camargo Estrutura Geral de um Computador Unidade de Entrada UCP Memória Unidade de Saída Para que um computador execute certas tarefas, ele necessita ser alimentado

Leia mais

Introdução à Programação. slides de Deise Sacol

Introdução à Programação. slides de Deise Sacol Introdução à Programação slides de Deise Sacol 1 2 Elaboração de um programa Problema Análise Programa Algoritmo 3 Processo de geração de um programa Análise do problema: Ler atentamente o enunciado do

Leia mais

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

Introdução à Algoritmos. Professora: Fabíola Gonçalves. Introdução à Algoritmos Professora: Fabíola Gonçalves. AGENDA Algoritmos Definição Por que precisamos de Algoritmos Características Formas de representação Descrição Narrativa Fluxograma Linguagem Algorítmica

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Estrutura de Dados Algoritmos

Estrutura de Dados Algoritmos Estrutura de Dados Algoritmos Antonio Felicio Netto antonio.felicio@anhanguera.com Algoritmo O que é um algoritmo? Processo sistemático para computar um resultado a partir de dados de entrada O que são

Leia mais

Computação I: Representações de Algoritmos

Computação I: Representações de Algoritmos Computação I: Representações de Algoritmos reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher Agenda Objetivos Relembrando... Algoritmos para desenvolver

Leia mais

Noções de Lógica Algoritmos e Lógica de Programação. Reinaldo Gomes

Noções de Lógica Algoritmos e Lógica de Programação. Reinaldo Gomes Algoritmos e Lógica de Programação Introdução Algoritmos e Lógica de Programação Reinaldo Gomes reinaldo@cefet-al.br O que é Lógica? Ciência que estuda as leis do raciocínio Correção/validação do pensamento

Leia mais

Fundamentos de Programação Introdução

Fundamentos de Programação Introdução Fundamentos de Programação Introdução Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador

Leia mais

CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO

CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO Lógica de Programação Lógica de programação é a técnica de encadear pensamentos (instruções) para atingir determinado objetivo. Instruções Instruções são regras

Leia mais

Programação Básica de Computadores

Programação Básica de Computadores Programação Básica de Computadores Gabriel M. Miranda gabrielmartinsmiranda@gmail.com DEPARTAMENTO DE INFORMÁTICA CENTRO TECNOLÓGICO UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Introdução a Computação O que

Leia mais

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES 1. Introdução à Lógica de Programação 1.1. Lógica? Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Prof. Alceu Britto Slides cedidos por Prof. Edson J. R. Justino (PUCPR) Aula Teórica 02 O Conceito de Algoritmo e as Estruturas Básicas de Controle Enquanto existir um quadrado

Leia mais

Aula 3: Algoritmos: Formalização e Construção

Aula 3: Algoritmos: Formalização e Construção Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação 2 O que é um algoritmo? É um caminho para a solução de um problema. Problema Algoritmo Solução 3 No contexto computacional... É um conjunto finito de regras, bem definidas, para

Leia mais

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação O que é Algoritmo? Algoritmo é um dos processo para criação de um programa. Putz????? Definições de Algoritmos Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.(forbellone,

Leia mais

Pseudocódigo e Visualg

Pseudocódigo e Visualg Pseudocódigo e Visualg Professor: Alex Sandro Forghieri alex.forghieri@ifsc.edu.br Agenda Revisão Algoritmos Estrutura de dados Estrutura básica de um algoritmo em pseudocódigo Teste de mesa Operadores

Leia mais

Introdução ao Conceito de Algoritmo e Programação Estruturada

Introdução ao Conceito de Algoritmo e Programação Estruturada Prof. Alceu Britto Aula Teórica 02 Introdução ao Conceito de Algoritmo e O Conceito de Algoritmo e as Estruturas Básicas de Controle Enquanto existir um quadrado livre e não tenha vencido (ou perdido)

Leia mais

INTRODUÇÃO A ALGORITMOS

INTRODUÇÃO A ALGORITMOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Campus João Câmara INTRODUÇÃO A ALGORITMOS Prof. Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes INTRODUÇÃO

Leia mais

Introdução à Programação. slides de Deise Sacol

Introdução à Programação. slides de Deise Sacol Introdução à Programação slides de Deise Sacol 1 LÓGICA DE PROGRAMAÇÃO: Técnica de encadear pensamentos para atingir determinado objetivo Necessária para desenvolver programas e sistemas, pois permite

Leia mais

Sintática: como é escrito cada elemento da linguagem de programação.

Sintática: como é escrito cada elemento da linguagem de programação. 4ª. AULA Sintaxe e Semântica Para que uma linguagem de programação atenda aos requisitos especificados de forma eficiente, ela deve ser escrita de forma única (não ambígua). Isso envolve a definição: Sintática:

Leia mais

Programação de Redes de Computadores

Programação de Redes de Computadores 1: Introdução 1 MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS SÃO JOSÉ SANTA CATARINA Programação de Redes de Computadores

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina.

Leia mais

Prof. Jorge Cavalcanti

Prof. Jorge Cavalcanti Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 02 (baseado no material do prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

Computadores = cérebros eletrônicos?

Computadores = cérebros eletrônicos? Prof. André Backes Introdução Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as características que possuem.

Leia mais

É neste ponto que entra o conceito de lógica de programação.

É neste ponto que entra o conceito de lógica de programação. AULA 01 OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO A lógica é a ciência do pensamento correto. Esta declaração não implica, contudo, em afirmar que ela seja a ciência da verdade.

Leia mais

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

- Aula 01, 02, 03 e 04 Apresentação da disciplina. 1 - Aula 01, 02, 03 e 04 Apresentação da disciplina. Disciplina: Algoritmos (Disciplina é pré-requisito para outras disciplinas). Plano de Ensino: Estrutura Sequencial, Estrutura de Decisão (Desvio Condicional

Leia mais

Algoritmos e Fluxogramas

Algoritmos e Fluxogramas Introdução Algoritmos e Fluxogramas Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as características que

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 2 Elementos fundamentais de Algoritmos, Conceitos de Variáveis Profa. Marina Gomes marinagomes@unipampa.edu.br 21/03/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje

Leia mais

#Conceituação. Algoritmos. Eliezio Soares

#Conceituação. Algoritmos. Eliezio Soares INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS SÃO GONÇALO DO AMARANTE Algoritmos #Conceituação Eliezio Soares Eliezio.soares@ifrn.edu Computadores e Tarefas 1. O computador

Leia mais

LINGUAGEM ALGORÍTMICA

LINGUAGEM ALGORÍTMICA LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem

Leia mais

Capítulo 1 Conceitos Básicos

Capítulo 1 Conceitos Básicos Capítulo 1 Conceitos Básicos Licenciatura em Computação Fundamentos de Lógica para Programação Prof. Nícolas Trigo nicolas.trigo@ifsertao-pe.edu.br http://professor.ifsertao-pe.edu.br/nicolas.trigo Introdução

Leia mais

1. ALGORITMOS. São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

1. ALGORITMOS. São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui: 1. ALGORITMOS 1.1. DEFINIÇÃO DE ALGORITMO A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano:

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina

Leia mais

Aula 4 Introdução ao C

Aula 4 Introdução ao C Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções

Leia mais

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26 INE5231 Computação Científica I Prof. A. G. Silva 14 de março de 2017 Prof. A. G. Silva INE5231 Computação Científica I 14 de março de 2017 1 / 26 Conteúdo programático O computador - [3 horas-aula] Representação

Leia mais

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos. Prof. Jonatas Bastos   Site: Algoritmos Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com Site: http://jonatasfbastos.wordpress.com/ 1 Dúvidas! p p p Como os computadores entendem os algoritmo? Os computadores não entendem os passos

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 O Que é Lógica? 2 Problemas e Algoritmos 3 Representando Algoritmos Material

Leia mais

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO AULA 02 OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO A lógica é a ciência do pensamento correto. Esta declaração não implica, contudo em afirmar que ela seja a ciência da verdade.

Leia mais

Introdução a Lógica de Programação

Introdução a Lógica de Programação Introdução a Lógica de Programação O processo de programação é uma conversa controlada entre um ser humano (tecnicamente preparado) e um computador Linguagem Linguagem de baixo nível Grande dificuldade,

Leia mais

Projeto de Algoritmos

Projeto de Algoritmos Projeto de Algoritmos Introdução aos Sistemas Computacionais Prof. Ernani Viriato de Melo / Reginaldo Costa http://www.ernani.eti.br http://reginaldofazu.blogspot.com 2º Semestre - 2008 Conceitos Básicos

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação

Leia mais

Conceitos Básicos de Programação - Algoritmos

Conceitos Básicos de Programação - Algoritmos Conceitos Básicos de Programação - Algoritmos Prof. Francisco Rapchan www.geocities.com/chicorapchan rapchan@terra.com.br O objetivo desta pequena apostila é servir de material de apoio para os cursos

Leia mais

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Introdução Um algoritmo pode ser definido como uma sequência finita de passos

Leia mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Etapas para o desenvolvimento de um programa Analise: estudo do problema para determinação dos dados de entrada, do processamento

Leia mais

Fábio Rodrigues / Israel Lucania

Fábio Rodrigues / Israel Lucania Fábio Rodrigues / Israel Lucania Lógica de programação; Sequência lógica; Instruções. Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Programar não é um ato

Leia mais

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas Prof. Me. Hélio Esperidião Ferreira Objetivos: (Entender os principais conceitos atuais e históricos sobre o desenvolvimento

Leia mais

PROGRAMAÇÃO I. Introdução

PROGRAMAÇÃO I. Introdução PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação

Leia mais

Introdução à Algoritmos INF 1005 e INF Programação I

Introdução à Algoritmos INF 1005 e INF Programação I Introdução à Algoritmos INF 1005 e INF1004 - Programação I Pontifícia Universidade Católica Departamento de Informática 1 Algoritmo: Conceito Sequência finita e não ambígua de passos para a solução de

Leia mais

Como representar um algoritmo?

Como representar um algoritmo? de Algoritmos Prof. Araken Medeiros araken@ufersa.edu.br Angicos, RN 15/9/2009 Como representar um algoritmo? 15/9/2009 Prof. Araken Medeiros 2 Há várias formas de representação de Dentre elas, as mais

Leia mais

Programação Estruturada Aula - Introdução a Linguagem de Programação

Programação Estruturada Aula - Introdução a Linguagem de Programação Programação Estruturada Aula - Introdução a Linguagem de Programação Prof. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR 2 ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR

Leia mais