Computação Cientifica

Computação Cientifica

(Parte 1 de 6)

Computação Científica I – Profª. Valéria Ap. Perez Faria

1 - As dificuldades de programar3
2 - A metodologia de aprendizagem3
5 - Algoritmo4
5 - Desenvolvendo algoritmos5
6 - Fases5
7 - Algoritmos Não Computacionais6
8 - Algoritmos Computacionais7
9 -Linearização de Expressões10
10 -Forma Geral de um ALGORITMO13
12 -Variáveis14
13 -Operador de Atribuição15
14 -Linhas de Comentário16
15 -Comandos de E/S (Entrada/Saída)16
16 -Construindo os Primeiros Algoritmos:19
17 - Estrutura Condicional21
17 .a - Escolha...Caso24
18 -Testando o Algoritmo25
19 -Estrutura de Repetição26
20 -Comando repita...Ate27
21 -Comando enquanto..faca32
2 -Comando para..faca3
23 -Variáveis Compostas Homogêneas34
23.a Variáveis Indexadas Unidimensionais (Vetores)35
23.b Variáveis Indexadas Bidimensionais (Matrizes)36
24 -Subalgoritmos38
24.a Funções38
24.b Procedimento (Sub_rotinas)42
25 - Funções definidas recursivamente43

Computação Científica I – Profª. Valéria Ap. Perez Faria

Programar um computador não é uma tarefa tão difícil. Difícil é programar as nossas cabeças. O computador, na realidade, é uma réplica bastante simplificada de nossa mente, com apenas uma diferença essencial: a AUTO-PROGRAMAÇÃO.

um processo conhecido como aprendizado

Ao longo de nossas vidas, aprendemos coisas a partir de alguns elementos fundamentais como cores, símbolos, sons, cheiros, e sentimentos. Esses elementos vão se combinando através de

O processo de aprendizado nada mais é do que uma auto-programação de nossas mentes. “Alguém” diz para nosso cérebro o que ele tem que fazer ao se deparar com uma situação específica, tal como: dobrar uma esquina, parar ao perceber o sinal vermelho, escovar os dentes ao acordar, em fim - tudo o que fazemos é regido por programas que, um dia, nós mesmos desenvolvemos.

Ora, se somos capazes de desenvolver programas para um aparelho tão complexo e genial como o nosso cérebro, por que não um simples computador?

Este é o nosso desafio. Desenvolver as técnicas necessárias para conseguirmos codificar programas em um computador digital.

1 - As dificuldades de programar Programar um computador, assim como a nossa mente, requer duas exigências básicas:

Conhecer a linguagem na qual se vai programar;

Estruturar o raciocínio de forma a saber combinar os comandos desta linguagem, dentro de uma sequência lógica, ou seja, de modo a atingirmos o objetivo perseguido.

A linguagem de programação utilizada pelas nossas mentes é composta de comandos (olhe, escute, memorize, decida, sinta, ame, odeie...), elementos (cores, tipos de cheiros, notas musicais, símbolos sonoros, símbolos visuais...) e é capaz de reconhecer e utilizar os recursos disponíveis no organismo (olho, ouvido, cérebro, nariz, boca...), sem os quais torna-se impossível a execução de um programa.

A linguagem de programação utilizada pelos computadores é composta também por comandos (receba, escreva, some, multiplique...) e elementos (números, palavras e símbolos), e também é capaz de reconhecer e utilizar os recursos disponíveis no computador e periféricos (impressora, monitor de vídeo, mouse, teclado, memória...).

Ao aprendermos uma receita de bolo, colocamos uma porção de comandos em nossa mente. Estes comandos são gravados de uma forma analógica e, logo em seguida, consolidamos o processo de aprendizagem através da execução daquele programa.

ajustados pela nossa mente para que, da próxima vez, não voltem a acontecer

Claro, da primeira vez que fazemos algo podemos cometer erros, que são automaticamente

Da mesma maneira, sempre que um programador desenvolve a primeira versão de seu programa, há uma fase de testes, quando os erros aparecem e são ajustados à necessidade do usuário. A esta fase damos o nome de DEPURAÇÃO.

2 - A metodologia de aprendizagem

Como vemos, a programação de computadores é bastante semelhante a programação de nossas mentes, o que torna suas dificuldades e características também similares.Aplicaremos as técnicas e recursos existentes aos elementos inerentes a computadores, interagindo com variáveis de memória, comandos de entrada e saída de dados, além de comandos que

Computação Científica I – Profª. Valéria Ap. Perez Faria controlarão a repetição de blocos de comandos. Estruturas como vetores, matrizes, listas, filas, pilhas, árvores, entre outras, serão ministrados em outras disciplinas.

Para representar as ações (comandos), utilizaremos uma linguagem não comercial - o pseudocódigo, conhecido como Algoritmo. Uma linguagem que lhe poupe de comandos em inglês, e que não apresente grandes sofisticações. A linguagem de programação experimental que utilizaremos para exercitar a lógica de programação será na nossa própria linguagem: a língua portuguesa.

Para facilitar o processo de aprendizagem, os temas que abordaremos poderão ser convertidos para a linguagem Pascal, que tem em suas origens, o objetivo de ensinar os alunos a interagirem com o computador de forma prática.

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

3.a Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o desenvolvimento. Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

3.b Seqüência Lógica Estes pensamentos, podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema.

uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc

3.c Instruções Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar. Convém ressaltar que uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem seqüencial lógica. Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos colocar em prática É evidente que essas instruções têm que ser executadas em uma ordem adequada – não se pode descascar as batatas depois de fritá-las. Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correta. Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.

4 - Programas Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Notem que dada esta interpretação rigorosa, um programa é por natureza muito específico e rígido em relação aos algoritmos da vida real.

5 - Algoritmo

Algoritmo é formalmente uma sequencia de passos que levam a execução de uma tarefa. Podemos pensar em um algoritmo como uma receita, uma sequencia de instruções que dão

Computação Científica I – Profª. Valéria Ap. Perez Faria cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas.

Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. São exemplos de algoritmos instruções de montagem, receitas, manuais de uso, etc. Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a solução de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória.

5 - Desenvolvendo algoritmos

Regras para construção do algoritmo

Para escrever um algoritmo precisamos descrever a sequencia de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:

Usar somente um verbo por linha

Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática

Usar frases curtas e simples Ser objetivo Procurar usar palavras que não tenham duplo sentido.

6 - Fases

Para montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.

Onde temos: ENTRADA: São os dados de entrada do algoritmo PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final SAÍDA: São os dados já processados, ou seja a resposta do problema.

Exemplo de algoritmo

Digite os valores N1 e N2

Soma N1 + N2 Resultado: soma

Computação Científica I – Profª. Valéria Ap. Perez Faria

7 - Algoritmos Não Computacionais

Um algoritmo não computacional é um algoritmo cuja sequência de passos, a princípio, não pode ser executada por um computador. Abaixo é apresentado um algoritmo não computacional cujo objetivo é usar um telefone público. Provavelmente você “executou” o algoritmo deste exemplo diversas vezes. O termo algoritmoestá muito ligado à Ciência da Computação, mas, na realidade, ele pode ser aplicado a qualquer problema cuja solução possa ser decomposta em um grupo de instruções.

Exemplo 1.1

Outro exemplo típico de algoritmo é uma receita culinária, como no exemplo abaixo

Exemplo 1.2 Algoritmo para fritar um ovo 1. Colocar um ovo na frigideira 2. Esperar o ovo ficar frito 3. Remover o ovo da frigideira

O algoritmo acima, no entanto, poderia ser mais detalhado e completo. Uma versão mais aceitável seria: Exemplo 1.3 Algoritmo para fritar um ovo 1. Retirar um ovo da geladeira 2. Colocar a frigideira no fogo 3. Colocar óleo 4. Esperar até o óleo ficar quente 5. Quebrar o ovo separando a casca 6. Colocar o conteúdo do ovo na frigideira 7. Esperar um minuto 8. Retirar o ovo da frigideira 9. Apagar o fogo

Essa segunda versão é mais completa e detalhada que a anterior. Nela, várias ações que estavam subentendidas foram explicitadas. No entanto, para que o algoritmo possa ser útil, é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções. O algoritmo do exemplo só será útil para alguém que seja fluente na língua portuguesa e

Computação Científica I – Profª. Valéria Ap. Perez Faria

computadores

conheça o significado dos verbos Retirar, Colocar, Esperar assim como dos substantivos utilizados no contexto de uma receita culinária. Em outras palavras, é preciso que a linguagem utilizada no algoritmo seja conhecida tanto por quem o escreveu quanto por quem vai executá-lo. Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem que utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos os termos utilizados nas instruções. Essa linguagem é conhecida como Português Estruturado (às vezes também chamada de Portugol). O português estruturado é, na verdade, uma simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm um significado muito bem definido. Ao conjunto de palavras e regras que definem o formato das sentenças válidas chamamos sintaxe da linguagem. Durante este texto, a sintaxe do Português Estruturado será apresentada progressivamente e a utilizaremos em muitos exercícios de resolução de problemas. Aprender as palavras e regras que fazem parte dessa sintaxe é fundamental; no entanto, não é o maior objetivo deste curso. O que realmente exigirá um grande esforço por parte do estudante é aprender a resolver problemas utilizando a linguagem. Para isso, há somente um caminho: resolver muitos problemas. O processo é semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação. Embora o Português Estruturado seja uma linguagem bastante simplificada, ela possui todos os elementos básicos e uma estrutura semelhante à de uma linguagem típica para programação de computadores. Além disso, resolver problemas com português estruturado, pode ser uma tarefa tão complexa quanto a de escrever um programa em uma linguagem de programação qualquer. Portanto, neste curso, estaremos na verdade procurando desenvolver as habilidades básicas que serão necessárias para adquirir-se competência na programação de Para praticar nossa sintaxe e testar nossos problemas, utilizaremos o software Visualg

(Parte 1 de 6)

Comentários