Programacao de Computadores PARTE001

10
UNIPAC Ciência da Computação Fundamentos de Programação Professor Filipe Costa Fernandes 1 INTRODUÇÃO Para que as pessoas se entendam e possam comunicar-se, é necessário que ambas falem uma linguagem comum. O mesmo acontece na relação homem-máquina. Se nos sentarmos em frente a um computador e começarmos a lhe ditar ordens em português, o equipamento permanecerá indiferente aos nossos comandos. Isto acontece porque os computadores são programados para entender e executar nossos comandos de acordo com um vocabulário pré-determinado e por eles conhecido. Quando surgiram os primeiros computadores, no final dos anos 40, tornou-se necessário programa-los. Tudo que um equipamento pode fazer baseia-se no conhecimento, pela máquina, de dois estados de corrente elétrica: ligado ou desligado. Entretanto, este tipo de programação era demasiadamente improdutivo, principalmente porque sempre que se fosse repetir o processamento, era necessário gastar horas para ajustar as chaves no painel do computador. A solução para este problema foi substituir o trabalho de programação que era realizado diretamente na máquina, por um processo que representasse o acionamento das chaves e das lâmpadas. COMPILADORES Quando duas pessoas, que falam idiomas diferentes precisam se comunicar, existem duas saídas: ou uma delas aprende e procura se expressar no outro idioma, ou ambas, continuam falando suas línguas com o auxilio de um tradutor para intermédia-las. Os compiladores, por sua vez, dependendo da linguagem que se utiliza, poderão envolver algumas etapas intermediárias. Estas etapas normalmente são chamadas de “link-editores” ou “tradutores” e devem ser executadas após a compilação inicial para, finalmente, gerar o programa em linguagem de máquina, pronto para ser executado. Como se pode observar, compiladores e interpretadores realizam seu trabalho de modos bastante diferentes. Nos casos em que não existem interpretadores, os programadores devem submeter-se ao ciclo habitual de desenvolvimento de programas: Entrar com todo o programa no computador. Compilar o programa, traduzindo para a linguagem de máquina. Executar o programa. OS NÍVEIS DAS LINGUAGENS Assim como os computadores, as linguagens de programação também têm evoluído. Costuma-se dizer que uma linguagem de computação encontra-se em um determinado nível em relação à linguagem humana. As linguagens em que sua sintaxe esta mais próxima da linguagem humana, são chamadas de linguagens de alto nível, já as linguagem mais próximas da linguagem das máquinas (ligado ou desligado) são chamadas de linguagem de baixo nível.

description

APOSTILA DE PROGRAMAÇÃO DE COMPUTADORES

Transcript of Programacao de Computadores PARTE001

Page 1: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

1 INTRODUÇÃO

Para que as pessoas se entendam e possam comunicar-se, é necessário que ambas falem uma linguagem comum. O mesmo acontece na relação homem-máquina. Se nos sentarmos em frente a um computador e começarmos a lhe ditar ordens em português, o equipamento permanecerá indiferente aos nossos comandos. Isto acontece porque os computadores são programados para entender e executar nossos comandos de acordo com um vocabulário pré-determinado e por eles conhecido. Quando surgiram os primeiros computadores, no final dos anos 40, tornou-se necessário programa-los. Tudo que um equipamento pode fazer baseia-se no conhecimento, pela máquina, de dois estados de corrente elétrica: ligado ou desligado.

Entretanto, este tipo de programação era demasiadamente improdutivo, principalmente porque sempre que se fosse repetir o processamento, era necessário gastar horas para ajustar as chaves no painel do computador.

A solução para este problema foi substituir o trabalho de programação que era realizado diretamente na máquina, por um processo que representasse o acionamento das chaves e das lâmpadas.

COMPILADORES

Quando duas pessoas, que falam idiomas diferentes precisam se comunicar,

existem duas saídas: ou uma delas aprende e procura se expressar no outro idioma, ou ambas, continuam falando suas línguas com o auxilio de um tradutor para intermédia-las.

Os compiladores, por sua vez, dependendo da linguagem que se utiliza, poderão envolver algumas etapas intermediárias. Estas etapas normalmente são chamadas de “link-editores” ou “tradutores” e devem ser executadas após a compilação inicial para, finalmente, gerar o programa em linguagem de máquina, pronto para ser executado.

Como se pode observar, compiladores e interpretadores realizam seu trabalho de modos bastante diferentes.

Nos casos em que não existem interpretadores, os programadores devem submeter-se ao ciclo habitual de desenvolvimento de programas:

Entrar com todo o programa no computador. Compilar o programa, traduzindo para a linguagem de máquina. Executar o programa.

OS NÍVEIS DAS LINGUAGENS

Assim como os computadores, as linguagens de programação também têm

evoluído. Costuma-se dizer que uma linguagem de computação encontra-se em um determinado nível em relação à linguagem humana.

As linguagens em que sua sintaxe esta mais próxima da linguagem humana, são chamadas de linguagens de alto nível, já as linguagem mais próximas da linguagem das máquinas (ligado ou desligado) são chamadas de linguagem de baixo nível.

Page 2: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

2 ALGORITMOS

Um algoritmo é uma seqüência lógica de instruções para realizar uma determinada tarefa. Os algoritmos não representam necessariamente programas de computador, e sim os passos necessários para se realizar uma tarefa. Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos tempo, espaço ou esforço do que outros. Por exemplo, um algoritmo para se vestir pode especificar que você vista primeiro as meias e os sapatos antes de vestir a calça enquanto outro algoritmo especifica que você deve primeiro vestir a calça e depois as meias e os sapatos. Fica claro que o primeiro algoritmo é mais difícil de executar que o segundo.

Estas instruções definidas por algoritmos, podem ser uma receita de bolo, manual de instruções de um aparelho qualquer, uma sequencia para somar dois números, etc. Desde que esta intruções sigam uma sequencia lógica e tenham inicio e fim.

Vamos pensar no caso de uma receita de bolo. Não podemos colocar o bolo para asar sem antes misturar (de forma correta) todos os ingredientes, que por sua vez não podem ser misturados, se eles não existem. Então, neste caso, devemos primeiro adquirir os ingredientes, depois mistura-los e por fim, levar tudo ao forno, que por sua vez deve está ligado ou poderá ser ligado futuramente.

Então, está sequencia lógica (se de ser um pouco mais refinada) pode ser definida como um algoritmo para se fazer um bolo (é claro que este algoritmo deve ser muito mais detalhado do que está em nosso exemplo, como por exemplo, devemos definir quais são os ingredientes).

A sequencia lógica também pode ser chamada de “Roteiro”. Um roteiro para chupar uma bala pode ser escrito da seguinte forma: “Pegar a Bala” “Retirar o Papel” “Chupar a Bala” “Jogar o Papel no lixo” Um roteiro para somar dois números pode ser escrito da seguinte forma: “Obter o primeiro número” “Obter o segundo número” “Somar os dois números obtidos” EXERCÍCIOS

Elabore um roteiro para tomar banho. Elabore um roteiro para copiar um arquivo do disquete para o disco C: Elabore um roteiro para uma pessoa ir de ônibus de um ponto A para um

ponto B. Elabore um roteiro para calcula quanto em Real (R$) vale uma

determinada quantidade de Dólares ($). Elabore um roteiro para calcular a média aritmética de três números.

Page 3: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

ALGORITMO X PROGRAMA Como vimos antes, um algoritmo é uma seqüência lógica de ações a serem

executadas para se realizar uma determinada tarefa. Um programa é a formalização de um algoritmo em uma determinada linguagem

de programação, segundo suas regras de sintaxe e semântica, de forma a permitir que o computador possa entender a seqüência de ações e realizar a tarefa.

LINGUAGEM DE PROGRAMAÇÃO É um conjunto de símbolos e regras de sintaxe que permitem a construção de

sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador.

PORTUGOL (lê-se portugól) O portugol é um algoritmo (escrito em português) utilizando as sintaxes e

semânticas de um modelo de linguagem de programação, geralmente (foi proposto para ser baseado no pascal) o portugol é baseado na linguagem Pascal, mas com todo tipo de algoritmo ele deve ter portabilidade para outras linguagens de programação.

Como vimos antes, todo algoritmo deve obrigatoriamente tem um inicio e um

fim, e entre eles algumas instruções a serem realizadas. Então um exemplo de um algoritmo pode ser escrito da seguinte forma: Inicio Instruções a serem realizadas Fim Tomando como exemplo a receita de bolo citada anteriormente, concluímos que

antes de fazer qualquer coisa, temos que adquirir os ingredientes necessários para o nosso bolo (esta é a seqüência lógica correta). Com os algoritmos também funciona desta forma devemos primeiro definir quais serão os ingredientes (que em algoritmos chamamos de definições, ou declarações) utilizado para a instrução em questão.

O processo de criação e execução de programas (no nosso caso algoritmos) se divide em três partes básicas: entrada, processamento e saída.

A entrada é toda a informação que o algoritmo recebe. Esta entrada sempre deverá ser armazenada em algum lugar, como por exemplo, em variáveis. O processamento é todo tipo de processamento que o algoritmo realiza, como atribuir um valor a alguma variável, realizar alguns tipo de tomada de decisão e algum tipo de repetição (falaremos sobre tomadas de decisão e sobre estruturas de repetição mais adiante). E a saída é a exibição dos resultados em tela, ou escrita em arquivos, ou em impressora.

Page 4: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

EXEMPLOS

Um algoritmo para somar dois números: Inicio variaveis

numero1 : intiero numero2 :inteiro

inteiro soma leia numero1 leia numero2 soma = numero1 + numero2 escreve soma

fim Neste exemplo temos na quarta e na quinta linha elementos de entrada (leia

numero1 e leia numero2), na sexta linha temos um processamento (soma=numero1+numero2) e na penúltima linha temos uma saída (escreve soma).

Estes elementos de entrada e saída são chamados de comandos. Os comandos são palavras reservadas das linguagens de programação que realizam alguma tarefa. Como por exemplo, a palavra reservada (comando) leia que vai capturar o número que o usuário digitar e armazenar em algum local para futuro processamento e/ou saída.

Este local de armazenamento é chamado de variável. As variáveis são porções de memória predefinidas para receber algum tipo de informação. Estas predefinições de variáveis podem ser definidas como o tipo de informação que a variável vai receber, e o tamanho da informação que a variável vai suportar.

Os tipos de variáveis são chamados de tipos ou tipos de dados e o tamanho é chamado de tamanho mesmo.

Os tipos de dados mais conhecidos e comumente utilizados são definidos na tabela abaixo:

TABELA 1 - Tipos de Dados mais comuns NOME DO TIPO DESCRIÇÃO Inteiro Recebe números inteiros positivos ou

negativos. Ex. 1; 2; 3; -4; -50; +100; etc.

Real Recebe números fracionários positivos ou negaivos. Ex. 1.0; 2.0; 1.3; -5.4; etc.

Char Recebe caracteres únicos, ou seja, suporta somente uma letra ou um número. Ex. ‘A’; ‘a’; ‘1’; etc.

String Recebe cadeias de caracteres. Devemos definir o tamanho máximo de cada variável string declarada, e esta variável

Page 5: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

poderá receber um único caractere ou uma cadeia de caracteres de no máximo o tamanho definido para ela. Ex. “UNIPAC”; “Computação”; “1”; “1.3”

Logico Recebe um dos dois valores lógicos: Verdadeiro ou Falso. Uma variável do tipo lógico, poderá receber somente um dos valores lógicos por vez.

OBS: Perceba que para tipos de dados CHAR usamos aspas simples (‘A’) e para

tipos de dados STRING usamos aspas duplas (“A”). Assim quando tivermos um caractere somente, saberemos identificar o tipo de dados da variável em questão.

Para declararmos uma variável devemos usar a palavra reservada variáveis e

depois definimos as variáveis que necessitamos, separando o nome da variável do seu tipo por dois pontos (:).

Sintaxe: Variáveis <nome_da_variavel> : <tipo_da_variavel> Exemplo: Variáveis X : inteiro Nome : String Sexo : Char Nota : Real Controle : Logico CONSTANTES As constantes são tipos de dados predefinidos e que não podem ter seus valores

alterados em tempo de execução de um programa. Por exemplo, podemos usar uma variável do tipo inteiro para ler um número qualquer, esta variável pode ter o seu valor alterado quantas vezes forem necessárias no decorrer do programa. Por outro lado podemos definir uma constante para definir o valor de PI, que é um valor que não será alterado no decorrer do programa, então criamos uma constante chamada de PI que recebe o valor de 3,14159265 e toda vez que precisarmos de PI, basta chamar esta constante.

Valores numéricos e strings também são chamados de Constantes. Os valores: 1; 10; -10; “Programação”; ‘C’, são exemplos de constantes.

Page 6: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

Para declarar uma constante, usamos a palavra reservada Constantes e depois declaramos todas as constantes necessárias.

Sintaxe: Constantes <nome_da_constante> = <valor_da_constante> Exemplos: Constantes PI = 3,14159265 ValorMaximo = 1000 Instituição = “UNIPAC” No exemplo acima, foram definidas três constantes, PI, ValorMaximo e

Instituição. Assim, no decorrer do programa, toda vez que precisar do valor de pi, não precisa informar o valor 3,1416 e sim utilizar a constante PI. O mesmo se aplica para as outras constantes.

Lembre-se que estes valores não podem ser alterados em tempo de execução do programa, portanto, se no meio do programa você tentar atribuir um outro valor qualquer para uma constante, isso vai ocasionar um erro na execução do programa.

PALAVRAS RESERVADAS As palavras reservadas são todas as palavras reservadas para alguma

funcionalidade em uma determinada linguagem de programação, estas funcionalidades são: ler, escrever, estrutura condicional, estrutura de repetição, definição de inicio de bloco de código, definição de final de bloco de código, nomes de tipos de dados, etc.

OPERADORES ARITMÉTICOS Os operadores aritméticos são: +, -, *, /. Com eles podemos realizar cálculos

matemáticos com variáveis numéricas, inteiras ou reais. Na matemática para realizar um cálculo de uma expressão, devemos montar toda

a expressão, separando os blocos de prioridade por parêntesis “()”, colchetes “[]”, ou chaves “{}”, em programação usamos somente parêntesis “()” e a ordem de precedência dos operadores.

A ordem de precedência dos operadores, é como se fossem parêntesis invisíveis que o compilador coloca na expressão quando não indicamos onde queremos ter parêntesis. O operador de Divisão tem a maior precedência, ou seja, em uma expressão sem separação por parêntesis a divisão será executada primeiro. Depois vem o operador de Multiplicação e por fim Adição e Subtração, nesta ordem.

TABELA 2 - Operadores Aritméticos

OPERADOR SIGNIFICADO / Operador de Divisão

Page 7: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

* Operador de Multiplicação + Operador de Adição - Operador de Subtração

A sintaxe dos operadores aritméticos é a seguinte: <valor_A> <operador aritmético> <valor_B> Exemplos: 10 + 10 2 – 1 15 / 3 250 * 24 OBS: também podemos substituir os valores numéricos por variáveis. OPERADORES RELACIONAIS Em certo ponto de nosso programa, teremos a necessidade de tomar algum tipo de

decisão, como por exemplo definir se um certo aluno foi aprovado ou reprovado em uma determinada disciplina, ou até mesmo descobrir de um número é par ou impar.

Para isso devemos usar uma estrutura condicional (ou estrutura de tomada de decisão) e nesta estrutura deveremos utilizar os operadores relacionais, que irão determinar o valor exato do item em questão.

Os operadores relacionais são: =, <>, <, >, <=, >=. A tabela a seguir mostra os operadores relacionais e seus respectivos significados.

TABELA 3 - Operadores Relacionais OPERADOR RELACIONAL SIGNIFICADO

= Igual <> Diferente < Menor que > Maior que <= Menor ou igual >= Maior ou igual

A sintaxe dos operadores relacionais é a seguinte: <valor_A> <operador relacional> <valor_B> Exemplos: 10 = 10 12 > 10 5 < 6

Page 8: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

X <= 50 OPERADOR DE ATRIBUIÇÃO ( := ) Para atribuirmos um valor a uma variável, devemos utilizar o operador de

atribuição. Este operador é o dois pontos e igual e ele serve para pegar o valor que está a sua direita e atribuir à variável que está a sua esquerda.

Sintaxe: <Variável_Destino> := <valor_original> Exemplos:(Dada uma variável do tipo inteiro X) X := 10; (a variável X recebe o valor 10) O operador de atribuição existe para diferenciar a atribuição de valores ( := ) com

a comparação de igualdade de valores ( = ). EXEMPLO PRÁTICO 1 Elaborar um algoritmo para escrever na tela a seguinte mensagem: Olá Mundo! Inicio Escreva “Olá Mundo!” Fim Perceba que neste algoritmo não declaramos variáveis, nem utilizamos alguma

outra técnica que vimos até aqui, por que o algoritmo deveria simplesmente escreve uma string (constante) na tela.

EXEMPLO PRÁTICO 2 Elaborar um algoritmo para ler o nome do usuário e escrever este nome na tela; Variáveis Nome : String Inicio Leia Nome Escreva Nome Fim Note que neste algoritmo já utilizamos o comando para ler algo do teclado, isso se

da pelo fato de que surgiu a necessidade de interagir com o usuário, o algoritmo necessitou do nome do usuário, então este nome foi lido do teclado. Mas note que nada informou ao usuário que ele deveria digitar o seu nome, então é sempre importante

Page 9: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

informarmos o usuário o que desejamos que ela faça. Portanto uma correção para o algoritmo do exemplo anterior fica da seguinte forma:

Variáveis Nome : String Inicio Escreva “Digite o seu Nome:” Leia Nome Escreva Nome Fim Você percebeu que a palavra Nome apareceu algumas vezes distintas no corpo do

algoritmo? Bom, na primeira vez que a palavra Nome aparece, ela está entre aspas duplas e é

um texto a ser exibido na tela. Na segunda vez que a palavra Nome aparece, ela está sem aspas e é uma variável que irá armazenar a informação que o usuário digitar no teclado.

Portanto, sempre que estiver usando VARIÁVEIS não utilize aspas, pois com aspas a sua variável deixará de ser uma variável e será um TEXTO SIMPLES.

EXEMPLO PRÁTICO 3 Elaborar um algoritmo para ler DOIS números e escrever a soma dos números. Variáveis Numero1 : inteiro Numero2 : inteiro Resultado : inteiro Inicio Escreva “Digite um número para somar” Leia Numero1 Escreva “Digite outro número para somar” Leia Numero2 Resultado := Numero1 + Numero2 Escreva Resultado Fim EXERCÍCIOS

1. Elabore um algoritmo para ler um nome e um número e depois escrever o nome e o número na tela.

2. Elabore um algoritmo para ler dois números e escrever na tela a multiplicação destes números.

3. Elabore um algoritmo para ler um número e escreve na tela o quadrado deste número.

Page 10: Programacao de Computadores PARTE001

UNIPAC Ciência da Computação

Fundamentos de Programação Professor Filipe Costa Fernandes

4. Elabore um algoritmo para ler três números e escreve na tela a média aritmética destes números.