Programação Numérica
Disciplina na modalidade a distância
Palhoça
UnisulVirtual
2011
Créditos
Universidade do Sul de Santa Catarina – Campus UnisulVirtual – Educação Superior a Distância
Avenida dos Lagos, 41 – Cidade Universitária Pedra Branca | Palhoça – SC | 88137-900 | Fone/fax: (48) 3279-1242 e 3279-1271 | E-mail: cursovirtual@unisul.br | Site: www.unisul.br/unisulvirtual
Reitor Unisul Assistente e Auxiliar de Luana Borges da Silva Gerência de Desenho Jeferson Pandolfo
Ailton Nazareno Soares Coordenação Luana Tarsila Hellmann e Desenvolvimento de Karine Augusta Zanoni
Maria de Fátima Martins (Assistente) Luíza Koing Zumblick Materiais Didáticos Marcia Luz de Oliveira
Vice-Reitor Fabiana Lange Patricio Maria José Rossetti Márcia Loch (Gerente)
Tânia Regina Goularte Waltemann Marilene de Fátima Capeleto Assuntos Jurídicos
Sebastião Salésio Heerdt Ana Denise Goularte de Souza Bruno Lucion Roso
Patricia A. Pereira de Carvalho Desenho Educacional
Chefe de Gabinete da Paulo Lisboa Cordeiro Cristina Klipp de Oliveira (Coord. Grad./DAD) Marketing Estratégico
Coordenadores Graduação Silvana Souza da Cruz (Coord. Pós/Ext.)
Reitoria Adriano Sérgio da Cunha Paulo Mauricio Silveira Bubalo Rafael Bavaresco Bongiolo
Rosângela Mara Siegel Aline Cassol Daga
Willian Máximo Aloísio José Rodrigues Ana Cláudia Taú Portal e Comunicação
Ana Luísa Mülbert Simone Torres de Oliveira
Vanessa Pereira Santos Metzker Carmelita Schulze Catia Melissa Silveira Rodrigues
Pró-Reitora Acadêmica Ana Paula R. Pacheco Carolina Hoeller da Silva Boeing Andreia Drewes
Arthur Beck Neto Vanilda Liordina Heerdt
Miriam de Fátima Bora Rosa Eloísa Machado Seemann Luiz Felipe Buchmann Figueiredo
Bernardino José da Silva Gestão Documental Flavia Lumi Matuzawa Marcelo Barcelos
Pró-Reitor de Administração Catia Melissa S. Rodrigues Lamuniê Souza (Coord.) Gislaine Martins Rafael Pessi
Fabian Martins de Castro Charles Cesconetto Clair Maria Cardoso Isabel Zoldan da Veiga Rambo
Diva Marília Flemming Daniel Lucas de Medeiros Jaqueline de Souza Tartari Gerência de Produção
Pró-Reitor de Ensino Fabiano Ceretta Eduardo Rodrigues João Marcos de Souza Alves Arthur Emmanuel F. Silveira (Gerente)
José Carlos da Silva Junior Guilherme Henrique Koerich Francini Ferreira Dias
Mauri Luiz Heerdt Horácio Dutra Mello Josiane Leal
Leandro Romanó Bamberg
Letícia Laurindo de Bonfim Design Visual
Itamar Pedro Bevilaqua Marília Locks Fernandes
Campus Universitário de Jairo Afonso Henkes
Lygia Pereira Pedro Paulo Alves Teixeira (Coord.)
Tubarão Lis Airê Fogolari Adriana Ferreira dos Santos
Janaína Baeta Neves Gerência Administrativa e Luiz Henrique Milani Queriquelli
Diretora Jardel Mendes Vieira Financeira Alex Sandro Xavier
Milene Pacheco Kindermann Marina Melhado Gomes da Silva Alice Demaria Silva
Joel Irineu Lohn Renato André Luz (Gerente) Marina Cabeda Egger Moellwald
Jorge Alexandre N. Cardoso Ana Luise Wehrle Anne Cristyne Pereira
Campus Universitário da Melina de La Barrera Ayres Cristiano Neri Gonçalves Ribeiro
José Carlos N. Oliveira Anderson Zandré Prudêncio Michele Antunes Corrêa
Grande Florianópolis José Gabriel da Silva Daniel Contessa Lisboa Daiana Ferreira Cassanego
Nágila Hinckel Diogo Rafael da Silva
Diretor José Humberto D. Toledo Naiara Jeremias da Rocha Pâmella Rocha Flores da Silva
Hércules Nunes de Araújo Joseane Borges de Miranda Rafael Bourdot Back Edison Rodrigo Valim
Rafael Araújo Saldanha Frederico Trilha
Luciana Manfroi Thais Helena Bonetti Roberta de Fátima Martins
Campus Universitário Luiz G. Buchmann Figueiredo Valmir Venício Inácio Higor Ghisi Luciano
Roseli Aparecida Rocha Moterle Jordana Paula Schulka
UnisulVirtual Marciel Evangelista Catâneo Sabrina Bleicher
Maria Cristina S. Veit Gerência de Ensino, Pesquisa Marcelo Neri da Silva
Diretora Sabrina Paula Soares Scaranto Nelson Rosa
Maria da Graça Poyer e Extensão Viviane Bastos
Jucimara Roesler Mauro Faccioni Filho Oberdan Porto Leal Piantino
Moacir Heerdt (Gerente) Patrícia Fragnani de Morais
Moacir Fogaça Aracelli Araldi Acessibilidade
Nélio Herzmann Vanessa de Andrade Manoel (Coord.) Multimídia
Equipe UnisulVirtual Onei Tadeu Dutra Elaboração de Projeto e Letícia Regiane Da Silva Tobal
Reconhecimento de Curso Sérgio Giron (Coord.)
Patrícia Fontanella Mariella Gloria Rodrigues Dandara Lemos Reynaldo
Diretora Adjunta Rogério Santos da Costa Diane Dal Mago
Patrícia Alberton Vanderlei Brasil Avaliação da aprendizagem Cleber Magri
Rosa Beatriz M. Pinheiro Fernando Gustav Soares Lima
Tatiana Lee Marques Francielle Arruda Rampelotte Geovania Japiassu Martins (Coord.)
Secretaria Executiva e Cerimonial Gabriella Araújo Souza Esteves
Jackson Schuelter Wiggers (Coord.) Valnei Carlos Denardin Extensão Conferência (e-OLA)
Roberto Iunskovski Jaqueline Cardozo Polla Carla Fabiana Feltrin Raimundo (Coord.)
Marcelo Fraiberg Machado Maria Cristina Veit (Coord.) Thayanny Aparecida B.da Conceição
Tenille Catarina Rose Clér Beche Bruno Augusto Zunino
Rodrigo Nunes Lunardelli Pesquisa
Assessoria de Assuntos Sergio Sell Daniela E. M. Will (Coord. PUIP, PUIC, PIBIC) Gerência de Logística Produção Industrial
Internacionais Mauro Faccioni Filho(Coord. Nuvem) Jeferson Cassiano A. da Costa (Gerente) Marcelo Bittencourt (Coord.)
Murilo Matos Mendonça Coordenadores Pós-Graduação
Aloisio Rodrigues Pós-Graduação Logísitca de Materiais Gerência Serviço de Atenção
Assessoria de Relação com Poder Bernardino José da Silva Anelise Leal Vieira Cubas (Coord.) Carlos Eduardo D. da Silva (Coord.)
Público e Forças Armadas Abraao do Nascimento Germano Integral ao Acadêmico
Carmen Maria Cipriani Pandini Maria Isabel Aragon (Gerente)
Adenir Siqueira Viana Daniela Ernani Monteiro Will Biblioteca Bruna Maciel
Walter Félix Cardoso Junior Salete Cecília e Souza (Coord.) Fernando Sardão da Silva André Luiz Portes
Giovani de Paula Carolina Dias Damasceno
Karla Leonora Nunes Paula Sanhudo da Silva Fylippy Margino dos Santos
Assessoria DAD - Disciplinas a Renan Felipe Cascaes Cleide Inácio Goulart Seeman
Distância Leticia Cristina Barbosa Guilherme Lentz
Marlon Eliseu Pereira Francielle Fernandes
Patrícia da Silva Meneghel (Coord.) Luiz Otávio Botelho Lento Holdrin Milet Brandão
Carlos Alberto Areias Rogério Santos da Costa Gestão Docente e Discente Pablo Varela da Silveira
Enzo de Oliveira Moreira (Coord.) Rubens Amorim Jenniffer Camargo
Cláudia Berh V. da Silva Roberto Iunskovski Juliana Cardoso da Silva
Conceição Aparecida Kindermann Thiago Coelho Soares Yslann David Melo Cordeiro
Capacitação e Assessoria ao Jonatas Collaço de Souza
Luiz Fernando Meneghel Vera Regina N. Schuhmacher Docente Avaliações Presenciais Juliana Elen Tizian
Renata Souza de A. Subtil Simone Zigunovas (Capacitação) Graciele M. Lindenmayr (Coord.) Kamilla Rosa
Gerência Administração Alessandra de Oliveira (Assessoria)
Assessoria de Inovação e Acadêmica Ana Paula de Andrade Maurício dos Santos Augusto
Qualidade de EAD Adriana Silveira Angelica Cristina Gollo Maycon de Sousa Candido
Angelita Marçal Flores (Gerente) Alexandre Wagner da Rocha
Denia Falcão de Bittencourt (Coord) Fernanda Farias Cristilaine Medeiros Monique Napoli Ribeiro
Andrea Ouriques Balbinot Elaine Cristiane Surian Daiana Cristina Bortolotti Nidia de Jesus Moraes
Carmen Maria Cipriani Pandini Secretaria de Ensino a Distância Juliana Cardoso Esmeraldino Delano Pinheiro Gomes Orivaldo Carli da Silva Junior
Iris de Sousa Barros Samara Josten Flores (Secretária de Ensino) Maria Lina Moratelli Prado Edson Martins Rosa Junior Priscilla Geovana Pagani
Giane dos Passos (Secretária Acadêmica) Fabiana Pereira Fernando Steimbach Sabrina Mari Kawano Gonçalves
Assessoria de Tecnologia Adenir Soares Júnior Fernando Oliveira Santos Scheila Cristina Martins
Osmar de Oliveira Braz Júnior (Coord.) Tutoria e Suporte
Alessandro Alves da Silva Claudia Noemi Nascimento (Líder) Lisdeise Nunes Felipe Taize Muller
Felipe Jacson de Freitas Andréa Luci Mandira Marcelo Ramos Tatiane Crestani Trentin
Jefferson Amorin Oliveira Anderson da Silveira (Líder)
Cristina Mara Schauffert Ednéia Araujo Alberto (Líder) Marcio Ventura Vanessa Trindade
Phelipe Luiz Winter da Silva Djeime Sammer Bortolotti Osni Jose Seidler Junior
Priscila da Silva Maria Eugênia F. Celeghin (Líder)
Douglas Silveira Andreza Talles Cascais Thais Bortolotti
Rodrigo Battistotti Pimpão Evilym Melo Livramento
Tamara Bruna Ferreira da Silva Daniela Cassol Peres
Fabiano Silva Michels Débora Cristina Silveira Gerência de Marketing
Fabricio Botelho Espíndola Francine Cardoso da Silva Fabiano Ceretta (Gerente)
Coordenação Cursos Felipe Wronski Henrique Joice de Castro Peres Relacionamento com o Mercado
Coordenadores de UNA Gisele Terezinha Cardoso Ferreira Karla F. Wisniewski Desengrini
Indyanara Ramos Eliza Bianchini Dallanhol Locks
Diva Marília Flemming Maria Aparecida Teixeira
Marciel Evangelista Catâneo Janaina Conceição Mayara de Oliveira Bastos Relacionamento com Polos
Roberto Iunskovski Jorge Luiz Vilhar Malaquias Patrícia de Souza Amorim Presenciais
Juliana Broering Martins Schenon Souza Preto Alex Fabiano Wehrle (Coord.)
Fernando Henrique Cardoso
Programação Numérica
Livro didático
Design instrucional
Ana Cláudia Taú
Palhoça
UnisulVirtual
2011
Copyright © UnisulVirtual 2011
Nenhuma parte desta publicação pode ser reproduzida por qualquer meio sem a prévia autorização desta instituição.
Design Instrucional
Ana Cláudia Taú
Diagramação
Frederico Trilha
Revisão
Letra de Forma
005.12
C26 Cardoso, Fernando Henrique
Programação numérica : livro didático / Fernando Henrique Cardoso ;
design instrucional Ana Cláudia Taú ; assistente acadêmico [Pâmela Rocha
Flores da Silva]. – Palhoça : UnisulVirtual, 2011.
188 p. : il. ; 28 cm.
Inclui bibliografia.
Apresentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Palavras do professor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Plano de estudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7
Palavras do professor
Talvez você nunca tenha tido esse problema, mas alguns colegas
e amigos já se depararam com o desafio de encontrar a fórmula
de uma curva que passasse por diversos pontos obtidos como
resultado parcial de uma experiência realizada. Sim, também
existem técnicas e métodos para encontrar essas curvas.
o livro didático;
o Sistema Tutorial.
Ementa
Introdução aos sistemas computacionais. Lógica e estrutura
de programação. Implementação de algoritmos em uma
linguagem de programação. Sistemas de equações lineares.
Ajustamento de curvas. Aplicações típicas para engenharia.
Universidade do Sul de Santa Catarina
Objetivos
Gerais:
Aprender os conceitos dos sistemas computacionais, passando pelos
algoritmos e a linguagem de programação Pascal, finalizando com
sistemas de equações lineares e ajustamento de curvas.
Específicos:
Conhecer os elementos fundamentais dos sistemas
computacionais.
12
Programação Numérica
Carga Horária
A carga horária total da disciplina é de 60 horas/aula.
Conteúdo programático/objetivos
Veja, a seguir, as unidades que compõem o livro didático desta
disciplina e os seus respectivos objetivos. Estes se referem aos
resultados que você deverá alcançar ao final de uma etapa de
estudo. Os objetivos de cada unidade definem o conjunto de
conhecimentos que você deverá possuir para o desenvolvimento
de habilidades e competências necessárias à sua formação.
Unidades de estudo: 5
13
Universidade do Sul de Santa Catarina
14
Programação Numérica
Atividades obrigatórias
15
1
unidade 1
Objetivos de aprendizagem
Conhecer os elementos fundamentais dos sistemas
computacionais;
Compreender os conceitos de hardware, software,
informação e procedimento e tarefa.
Seções de estudo
Seção 1 Sistemas computacionais
18
Programação Numérica
Unidade 1 19
Universidade do Sul de Santa Catarina
20
Programação Numérica
hardware;
software;
informações;
procedimentos;
tarefas.
Unidade 1 21
Universidade do Sul de Santa Catarina
Hardware
Hardware é o conjunto de componentes físicos de um sistema de
computador. Ele compreende os equipamentos utilizados para
entrada, processamento, armazenamento e saída de dados. Os
principais componentes de hardware são: processador, memória
principal, memória secundária e dispositivos de entrada e saída.
Processador
Todo processador pode ser considerado o cérebro de um
computador, pois realiza as funções de cálculo e tomadas de
decisões dessas máquinas. Ele é a ferramenta que executa
as instruções em um sistema. Ao mesmo tempo realiza a
interação entre as memórias, os dispositivos de entrada e saída,
os controladores e os conversores digitais para colocar em
funcionamento um computador.
22
Programação Numérica
Unidade 1 23
Universidade do Sul de Santa Catarina
Memória principal
A memória principal é composta por dispositivos que possuem
comunicação direta com o processador e permitem armazenar
instruções, dados e resultados. O sistema de armazenamento
temporário da memória principal é conhecido como Random
Access Memory (RAM) e Cache, e o permanente como Read Only
Memory (ROM).
Cache;
RAM;
ROM.
24
Programação Numérica
Veja a seguir uma explicação mais detalhada sobre cada uma das
memórias.
1. Memória RAM
É um tipo de memória cujo tempo que o processador leva para
ler, escrever ou apagar os dados de qualquer um de seus endereços
é constante. Por esse motivo, é chamada de memória de acesso
aleatório, em inglês, Random Access Memory (RAM).
2. Memória ROM
A memória ROM também armazena instruções, dados e
resultados, só que, diferentemente da memória RAM, não perde
as informações quando o computador é desligado. A memória
ROM não permite que o usuário altere o seu conteúdo, por esse
motivo rotinas de testes de dispositivos de hardware são utilizadas
para armazenar as instruções básicas de iniciação do computador.
Essa memória possui todas as instruções necessárias para que o
computador possa se comunicar corretamente com os dispositivos
de entrada e saída de dados.
Unidade 1 25
Universidade do Sul de Santa Catarina
3. Memória Cache
Como a velocidade do processador é muitas vezes maior que a
velocidade da memória RAM, o processador, após enviar grande
quantidade de dados, fica ocioso durante grande parte do tempo
aguardando que a memória RAM efetue a gravação e fique
disponível para acesso novamente. Para evitar essa ociosidade,
foi criada dentro do processador uma memória volátil, conhecida
como memória cache.
26
Programação Numérica
Memória secundária
Também conhecida como memória de massa, a memória
secundária é utilizada para armazenar grande quantidade de
informações permanentemente.
Unidade 1 27
Universidade do Sul de Santa Catarina
28
Programação Numérica
Unidade 1 29
Universidade do Sul de Santa Catarina
Software
O software é o componente lógico do sistema computacional, ou
seja, ele apresenta um conjunto de instruções necessárias para o
funcionamento do computador.
30
Programação Numérica
Informações
Entende-se por informação todo dado que sofreu processamento,
manipulação e organização de maneira que foi modificado,
quantitativa ou qualificativamente. É tudo aquilo que possibilita
a aquisição de qualquer tipo de conhecimento, ou seja, sempre
existirá informação quando algo veio a conhecimento que até
então se desconhecia.
Unidade 1 31
Universidade do Sul de Santa Catarina
Procedimentos ou tarefas
Todas as atividades que os sistemas computacionais realizam
ou permitem realizar são consideradas tarefas. Essas tarefas são
funcionalidades do sistema que são utilizadas pelos usuários para
satisfazer suas necessidades e metas.
32
Programação Numérica
Síntese
Unidade 1 33
Universidade do Sul de Santa Catarina
Atividades de autoavaliação
34
Programação Numérica
Saiba mais
Unidade 1 35
2
unidade 2
Lógica e Estrutura de
Programação
Objetivos de aprendizagem
Introduzir as definições básicas de lógica e suas
aplicações, utilizando situações cotidianas.
Apresentar os tipos primitivos, variáveis, constantes,
expressões aritméticas, relacionais e lógicas e os
comandos de entrada e saída.
Definir estruturas sequencial, de seleção, repetição
e de controle e fluxo de execução por meio da
exemplificação de sua utilização.
Seções de estudo
Seção 1 A lógica e suas aplicações
Vamos lá!
Observe:
38
Programação Numérica
Algoritmos
De maneira geral, podemos definir algoritmo como uma “receita’
para realizar determinada tarefa ou procedimento. Essa receita
precisa oferecer instruções bem definidas e não ambíguas,
Unidade 2 39
Universidade do Sul de Santa Catarina
40
Programação Numérica
Exemplo:
Unidade 2 41
Universidade do Sul de Santa Catarina
Exemplo
àà abrir o chuveiro;
àà fechar o chuveiro.
Exemplo
ligar o chuveiro;
se a água não esquentar, então:
àà pegar uma escada;
àà subir na escada;
42
Programação Numérica
àà abrir o chuveiro;
àà fechar o chuveiro.
Exemplo
ligar o chuveiro;
se a água não esquentar, então:
àà pegar uma escada;
àà subir na escada;
àà abrir o chuveiro;
Unidade 2 43
Universidade do Sul de Santa Catarina
àà fechar o chuveiro;
àà ligar o chuveiro;
àà subir na escada;
àà abrir o chuveiro;
àà fechar o chuveiro;
àà ligar o chuveiro;
àà subir na escada;
àà abrir o chuveiro;
àà retirar a resistência
queimada;
àà fechar o chuveiro;
44
Programação Numérica
àà fechar o chuveiro.
àà fechar o chuveiro.
Unidade 2 45
Universidade do Sul de Santa Catarina
Exemplo
ligar o chuveiro;
se a água não esquentar, então:
àà pegar uma escada;
àà subir na escada;
àà abrir o chuveiro;
àà fechar o chuveiro;
àà ligar o chuveiro;
àà abrir o chuveiro;
àà fechar o chuveiro;
àà ligar o chuveiro.
46
Programação Numérica
Exemplo
ligar o chuveiro 1;
se a água não esquentar, então:
àà pegar uma escada;
àà subir na escada;
àà abrir o chuveiro;
àà fechar o chuveiro;
àà ligar o chuveiro;
àà abrir o chuveiro;
àà fechar o chuveiro;
ligar o chuveiro 2;
se a água não esquentar, então:
àà pegar uma escada;
àà subir na escada;
ligar o chuveiro 3;
se a água não esquentar, então:
àà pegar uma escada;
àà ligar o chuveiro 5;
Unidade 2 47
Universidade do Sul de Santa Catarina
Exemplo
ir até o chuveiro 1;
enquanto a quantidade de chuveiros
testados for menor que 5, faça
àà ligar o chuveiro;
àà subir na escada;
àà abrir o chuveiro;
àà fechar o chuveiro;
àà ligar o chuveiro;
àà abrir o chuveiro;
àà retirar a resistência
queimada;
àà fechar o chuveiro;
àà ligar o chuveiro;
48
Programação Numérica
Unidade 2 49
Universidade do Sul de Santa Catarina
50
Programação Numérica
Unidade 2 51
Universidade do Sul de Santa Catarina
Estrutura de um algoritmo
Assim como existem diferentes formas de construir um algoritmo
para resolver determinado problema, também é possível adotar
diferentes estruturas para se escrever um algoritmo. Como
forma metodológica, a partir de agora para padronizar a forma
de apresentação do próximo exemplo de algoritmos a seguinte
estrutura será adotada:
Alguns conceitos informados na
1. Nome do algoritmo;
estrutura ainda são desconhecidos
até o momento, mas serão
esclarecidos em seguida. 2. Declaração das constantes e variáveis globais;
5. Código principal;
Algoritmo exemplo1;
...
52
Programação Numérica
...
Const
valor1 = 10;
letraA = ‘A’;
...
Unidade 2 53
Universidade do Sul de Santa Catarina
...
Var
nota1 : real;
contador : inteiro;
possuiFilho : lógico;
...
Tipos primitivos
Como você viu, quando é necessário declarar uma variável,
precisa-se informar qual será o seu tipo, ou seja, qual o conjunto
de informações possíveis ela manipulará e armazenará.
54
Programação Numérica
Unidade 2 55
Universidade do Sul de Santa Catarina
Constantes
Toda vez que uma determinada informação não sofrer nenhuma
alteração durante toda a execução do algoritmo, podemos afirmar
que essa informação é constante e será declarada como tal.
Variáveis
Toda vez que existir a possibilidade que determinado dado sofra
alteração durante a execução um programa, podemos afirmar que
esse dado é uma variável.
56
Programação Numérica
Algoritmo perimetro;
Const
pi = 3.1415;
Var
r : real;
p : real;
Início
Imprimir(“Informe o valor do raio do
círculo: “);
Ler(r);
p = pi * r * r;
Imprimir(“O perímetro do círculo informado
é: “, p);
Fim.
Unidade 2 57
Universidade do Sul de Santa Catarina
Expressões aritméticas
Toda vez que existir uma expressão formada apenas por valores
inteiros ou reais e operadores aritméticos, podemos afirmar que
essa é uma expressão aritmética.
Exemplos
a) 5 + 10
b) 4 – 1
c) 9 * 2
d) 15 / 3
Exemplos
58
Programação Numérica
Exemplos:
a) simples: 15 + 98
Acompanhe:
Unidade 2 59
Universidade do Sul de Santa Catarina
Exemplo
Expressões lógicas
Expressão lógica é toda expressão formada por operadores lógicos
ou relacionais e operandos do tipo lógico e seu resultado é sempre
um valor lógico. Têm-se operadores relacionais (ou lógicos)
quando se deseja comparar dois valores do mesmo tipo.
Exemplos
a) 5 + 4 = 45/5
9 = 9
V
b) 9 – (33/11) - rad(36) <> 0
9 – 3 - rad(36) <> 0
9 – 3 - 6 <> 0
6 - 6 <> 0
0 <> 0
F
c) pot(9,2) – 100 div 9 > 15 * 4
81 – 100 div 9 > 15 * 4
81 – 11 > 15 * 4
81 – 11 > 60
70 > 60
V
60
Programação Numérica
Operação NÃO
a NÃO a
V F
F V
Operação E
a b aEb
V V V
V F F
F V F
F F F
Unidade 2 61
Universidade do Sul de Santa Catarina
Operação OU
a b a OU b
V V V
V F V
F V V
F F F
Exemplos
c) NÃO F OU 5 + 3 < 10
NÃO F OU 8 < 10
NÃO F OU V
V OU V
V
62
Programação Numérica
Atribuição
A utilização de variáveis não teria utilidade se não
conseguíssemos fazer com que valores fossem armazenados.
Para esse propósito, temos o comando de atribuição que permite
atribuir um valor a uma variável, porém seus tipos devem ser
compatíveis, ou seja, se temos uma variável inteira, apenas
poderemos atribuir valores inteiros a ela.
Exemplos
Var
nota1, nota2, media : real;
aprovado : lógico;
...
nota1 <- 7.5;
nota2 <- 6.8;
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
...
Unidade 2 63
Universidade do Sul de Santa Catarina
Entrada de dados
Outra forma de permitir que uma variável armazene um valor
é a partir de dados fornecidos pelo usuário. Esse fornecimento
de informações pelo usuário chama-se entrada de dados e é
representada no algoritmo pela palavra reservada ler seguida de
uma variável entre parênteses.
Exemplos
Var
nota1, nota2, media : real;
aprovado : lógico;
...
ler(nota1);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
...
64
Programação Numérica
Saída de dados
Assim como é importante receber dados do usuário, é essencial
que seja possível fornecer informações para ele também.
Exemplos
Var
nota1, nota2, media : real;
aprovado : lógico;
...
ler(nota1);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
imprimir(“Aluno aprovado?”, aprovado);
...
Unidade 2 65
Universidade do Sul de Santa Catarina
Exemplos
Var
nota1, nota2, media : real;
aprovado : lógico;
...
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
imprimir(“Aluno aprovado?”, aprovado);
...
66
Programação Numérica
Blocos
Uma das definições na linguagem de programação para bloco é
identificá-lo como um conjunto de comando que busca realizar
determinada função. Assim, sempre que for necessário agrupar
determinadas ações, utiliza-se bloco. As palavras reservadas Início
e Fim delimitam o começo e o final de cada bloco.
Exemplo
Algoritmo calculaMedia;
Var
nota1, nota2, media : real;
aprovado : lógico;
...
Início
...
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
imprimir(“Aluno aprovado?”, aprovado);
...
Fim.
Unidade 2 67
Universidade do Sul de Santa Catarina
Estrutura de decisão
Até agora vimos algoritmos que seguem uma linha única de
execução: o algoritmo começa a executar a partir de Início e segue
executando linha a linha até encontrar Fim. Agora pense na
situação a seguir.
Se <condição>
Então
<comando>;
FimSe;
68
Programação Numérica
Se <condição>
Então
Início
<comando1>;
<comando2>;
...
<comandoN>;
Fim;
FimSe;
Exemplo
Algoritmo calculaMedia;
Var
nota1, nota2, media : real;
...
Início
...
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
Unidade 2 69
Universidade do Sul de Santa Catarina
Se <condição>
Então
<comando>;
Senão
<comando>;
FimSe;
70
Programação Numérica
Se <condição>
Então
Início
<comando1>;
<comando2>;
...
<comandoN>;
Fim;
Senão
Início
<comando1>;
<comando2>;
...
<comandoN>;
Fim;
FimSe;
Exemplo
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
...
Início
...
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
Se (media > = 7)
Unidade 2 71
Universidade do Sul de Santa Catarina
Então
imprimir(“Parabéns!!! Você está
aprovado.“);
Senão
Início
imprimir(“Informar a nota da prova de
recuperação:“);
ler(notarec);
Fim;
FimSe;
...
Fim.
Se <condição>
Então
Se <condição>
Então
<comando>;
Senão
<comando>;
FimSe;
Senão
Se <condição>
Então
<comando>;
72
Programação Numérica
Senão
<comando>;
FimSe;
FimSe;
Exemplo
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
...
Início
...
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
Se (media > = 7)
Então
Se (media > = 9)
Então
imprimir(“Muito bem!!! Você foi muito
bem nesta disciplina!“);
Senão
imprimir(“Parabéns!!! Você está
aprovado.“);
FimSe;
Senão
Se (media > = 3)
Unidade 2 73
Universidade do Sul de Santa Catarina
Então
Início
imprimir(“Informar a nota da prova
de recuperação:“);
ler(notarec);
Fim;
Senão
imprimir(“Você não atingiu a média
mínima e está reprovado.“);
FimSe;
FimSe;
...
Fim.
Estrutura de repetição
Com a utilização das estruturas de decisão, conseguimos resolver
o problema de execução condicional que acontece com muita
frequência no nosso cotidiano e não teria como ser diferente em
algoritmos. Afinal, os algoritmos vieram para automatizar muitas
tarefas do nosso dia a dia.
74
Programação Numérica
Onde:
Unidade 2 75
Universidade do Sul de Santa Catarina
Exemplo
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
...
Início
...
Para i de 1 até 35 passo 1 faça
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
Se (media > = 7)
Então
Se (media > = 9)
Então
imprimir(“Muito bem!!! Você foi
muito bem nesta disciplina!”);
Senão
imprimir(“Parabéns!!! Você está
aprovado.”);
FimSe;
Senão
Se (media > = 3)
Então
Início
imprimir(“Informar a nota da prova
de recuperação: “);
ler(notarec);
Fim;
Senão
imprimir(“Você não atingiu a média
mínima e está reprovado.”);
FimSe;
FimSe;
FimPara;
...
Fim.
76
Programação Numérica
Unidade 2 77
Universidade do Sul de Santa Catarina
Repita
comando1;
comando2;
...
até <condição>;
Exemplo Enquanto
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
existeAluno : caracter;
...
78
Programação Numérica
Início
...
existeAluno <- “S”;
Enquanto (existeAluno = “S”) faça
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
Se (media > = 7)
Então
Se (media > = 9)
Então
imprimir(“Muito bem!!! Você foi
muito bem nesta disciplina!”);
Senão
imprimir(“Parabéns!!! Você está
aprovado.”);
FimSe;
Senão
Se (media > = 3)
Então
Início
imprimir(“Informar a nota da prova
de recuperação: “);
ler(notarec);
Fim;
Senão
imprimir(“Você não atingiu a
média mínima e está reprovado.”);
FimSe;
FimSe;
imprimir(“Existem mais alunos para
calcular a média?“);
ler(existeAluno);
FimEnquanto;
...
Fim.
Unidade 2 79
Universidade do Sul de Santa Catarina
Exemplo Repita
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
existeAluno : caracter;
...
Início
...
Repita
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- (nota1 + nota2)/2;
aprovado <- media >= 7;
imprimir(“A média das provas é: “, media);
Se (media > = 7)
Então
Se (media > = 9)
Então
imprimir(“Muito bem!!! Você foi
muito bem nesta disciplina!”);
Senão
imprimir(“Parabéns!!! Você está
aprovado.”);
FimSe;
Senão
Se (media > = 3)
Então
Início
imprimir(“Informar a nota da prova
de recuperação: “);
ler(notarec);
Fim;
Senão
imprimir(“Você não atingiu a
média mínima e está reprovado.”);
FimSe;
FimSe;
imprimir(“Existem mais alunos para
calcular a média?“);
80
Programação Numérica
ler(existeAluno);
Até (existeAluno <> “S”);
...
Fim.
Unidade 2 81
Universidade do Sul de Santa Catarina
82
Programação Numérica
Onde:
Unidade 2 83
Universidade do Sul de Santa Catarina
Onde:
84
Programação Numérica
Var
aprov : lógico;
Início
aprov <- mediaFinal >= 7;
retornar aprov;
Fim;
Procedimento recuperacao;
Var
nota: real;
Início
imprimir(“Informar a nota da prova de
recuperação: “);
ler(nota);
Fim;
Exemplo Enquanto
Algoritmo calculaMedia;
Var
nota1, nota2, notarec, media : real;
existeAluno : caracter;
...
Unidade 2 85
Universidade do Sul de Santa Catarina
Início
...
existeAluno <- “S”;
Enquanto (existeAluno = “S”) faça
imprimir(“Informe a nota da Prova 1: “);
ler(nota1);
imprimir(“Informe a nota da Prova 2: “);
ler(nota2);
media <- mediaProvas(nota1, nota2);
aprovado <- verificaAprovacao(media);
imprimir(“A média das provas é: “, media);
Se (aprovado)
Então
Se (media > = 9)
Então
imprimir(“Muito bem!!! Você foi
muito bem nesta disciplina!”);
Senão
imprimir(“Parabéns!!! Você está
aprovado.”);
FimSe;
Senão
Se (media > = 3)
Então
Início
recuperacao();
Fim;
Senão
imprimir(“Você não atingiu a
média mínima e está reprovado.”);
FimSe;
FimSe;
imprimir(“Existem mais alunos para
calcular a média?“);
ler(existeAluno);
FimEnquanto;
...
Fim.
86
Programação Numérica
Síntese
Neste sentido, você viu que algoritmos nada mais são do que
receitas ou instruções passo a passo muito detalhadas para a
execução de determinada tarefa. Você verificou também que os
diversos comandos e estruturas nos permitem criar as instruções
para que o computador, por meio dos algoritmos, realizem o que
foi informado.
Atividades de autoavaliação
Unidade 2 87
Universidade do Sul de Santa Catarina
Saiba mais
Se você desejar, aprofunde os conteúdos estudados nesta unidade
ao consultar a seguinte referência:
88
3
unidade 3
Implementar Algoritmos em
Pascal
Objetivos de aprendizagem
Conhecer as definições básicas de Lógica de Programação;
Seções de estudo
Seção 1 Introdução à linguagem de programação
90
Programação Numérica
Linguagem Assembly:
Unidade 3 91
Universidade do Sul de Santa Catarina
Linguagem PHP
if(4 == 2) {
print (“Fim do mundo! 4 é igual a 2!”);
} else {
print (“Ufa! 4 é diferente de 2”);
}
?>
92
Programação Numérica
Unidade 3 93
Universidade do Sul de Santa Catarina
94
Programação Numérica
program exemplo1;
uses crt
var
p1, p2, media : real;
Unidade 3 95
Universidade do Sul de Santa Catarina
a) Variáveis
Variáveis são utilizadas para armazenar valores que serão
utilizados posteriormente pelo programa.
96
Programação Numérica
Exemplo:
program exemplo2;
uses crt
var
idade, diasUteis : integer;
preco, media : real;
sexo, tipoLeite : char;
Unidade 3 97
Universidade do Sul de Santa Catarina
nome : string[50];
endereco : string[122];
aprovado, diaUtil: boolean;
...
b) Atribuição
Embora a maioria das linguagens de programação utiliza o sinal de
igual “=” para representar a atribuição de valores a variáveis, no Pascal
o símbolo usado é o dois-pontos seguido do sinal de igual “:=”.
Exemplo:
program exemplo3;
uses crt
98
Programação Numérica
var
idade, diasUteis : integer;
preco, media : real;
sexo, tipoLeite : char;
nome : string[50];
endereco : string[122];
aprovado, diaUtil: boolean;
begin
idade := 15;
preco := 1.99;
sexo := ‘M’;
nome := “Fulano“;
aprovado := true;
diaUtil := false;
...
c) Saída de dados
Para exibir o valor de alguma variável ou alguma mensagem na
tela do computador, o Pascal disponibiliza os comandos WRITE
e WRITELN. Enquanto o comando WRITE imprime na
tela e o cursor permanece no final da mensagem exibida, o
WRITELN exibe a mensagem na tela e posiciona o cursor na
próxima linha.
Exemplo 1:
...
var
idade: integer;
begin
idade := 15;
Unidade 3 99
Universidade do Sul de Santa Catarina
Tela
A idade calculada é de 15 anos.
Exemplo 2:
...
begin
write (“Esta mensagem “);
writeln (“e esta mensagem, aparecerão na
mesma linha.“);
writeln(“Enquanto esta mensagem será exibida
na próxima linha.“);
...
Tela
Esta mensagem e esta mensagem, aparecerão
na mesma linha.
Enquanto esta mensagem será exibida na
próxima linha.
d) Entrada de dados
O Pascal utiliza READ e READLN para fazer a entrada
de dados via teclado nos programas. Tanto READ quanto
READLN armazenam o valor digitado via teclado na respectiva
variável. Quando o programa executa o comando de entrada
de dados (READ ou READLN), ele fica aguardando que a
informação seja fornecida pelo usuário. Para isso, o cursor ficará
piscando na tela e toda vez que o usuário pressionar uma tecla ela
será ecoada na tela.
100
Programação Numérica
Exemplo 1:
program calculaMedia;
uses crt
var
p1, p2, media : real;
begin
clrscr;
write(“Digite a nota da P1: ”);
readln(p1);
write(“Digite a nota da P2: ”);
readln(p2);
media = (p1 + p2) / 2;
writeln(“A média geral é: “, media);
end.
Exemplo 2:
program calculaAreaCirculo;
uses crt
var
raio, area : real;
begin
clrscr;
write(“Digite o raio do círculo: ”);
readln(raio);
area = PI * sqr(raio);
writeln(“A área do círculo informado é: “,
area);
end.
Unidade 3 101
Universidade do Sul de Santa Catarina
102
Programação Numérica
Unidade 3 103
Universidade do Sul de Santa Catarina
104
Programação Numérica
Unidade 3 105
Universidade do Sul de Santa Catarina
106
Programação Numérica
Unidade 3 107
Universidade do Sul de Santa Catarina
108
Programação Numérica
Exemplo:
program exemplo1;
uses crt
var
p1, { variável utilizada para armazenar a
nota da primeira prova }
p2, { variável utilizada para armazenar a
nota da segunda prova }
media : real;{ variável utilizada para
armazenar a média das provas }
(*************************************************
************************
* Função responsável por calcular a média de
duas notas. *
* n1: valor da nota da primeira prova.
*
* n2: valor da nota da segunda prova.
*
* retorno média aritmética das duas notas
*
************************************************
*************************)
function calculaMedia(n1, n2: real) : real;
begin
Unidade 3 109
Universidade do Sul de Santa Catarina
begin
clrscr;
writeln(‘Informe a nota da P1: ’);
readln(p1);
writeln(‘Informe a nota da P2: ’);
readln(p2);
media := calculaMedia(p1,p2);
writeln(‘A média final foi: ’, media);
end.
f) Expressões
Expressão é uma combinação de operandos, operadores e
símbolos gráficos com o objetivo de obter um resultado de um
problema proposto.
1. Parênteses
2. Operadores Unários @ not
110
Programação Numérica
De Atribuição : =
Utilizado para atribuir um valor a uma variável. Os dois
lados da atribuição devem ser do mesmo tipo, ou seja,
se existir uma variável inteira recebendo uma expressão,
essa expressão deve resultar em um valor inteiro.
De Concatenação: +
Utilizado para unir duas strings.
Operadores Aritméticos
Utilizados em operações aritméticas com números reais e
inteiros.
+ Adição
- Subtração
* Multiplicação
/ Divisão real
div Divisão inteira
mod Resto da divisão inteira
Operadores Relacionais
Utilizados para comparar dados do mesmo tipo, sempre
resultando um valor lógico, TRUE ou FALSE.
Unidade 3 111
Universidade do Sul de Santa Catarina
> Maior
< Menor
>= Maior ou igual
<= Menor ou igual
= Igual
<> Diferente
Operadores Lógicos
Utilizados para comparar duas expressões lógicas, sempre
resultando um valor lógico, TRUE ou FALSE.
and E
or OU
not NÃO ou NEGADO
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova
}
p2, { Nota da segunda prova }
media: real; { Média das duas
provas }
aprovado : boolean; { Indica se o aluno
está aprovado ou não }
begin
write(“Nome do aluno: “);
readln(nome);
nome := nome + “ - Escola Primeiro Degrau”;
write(“Nota da P1: “);
readln(p1);
write(“Nota da P2: “);
readln(p2);
112
Programação Numérica
g) Estrutura de decisão
No Pascal, existe uma estrutura de decisão para efetuarmos um
desvio na lógica do programa de acordo com uma determinada
condição testada. Essa estrutura é o comando IF e ele pode ser
escrito das duas formas que veremos a seguir:
Forma simples
if <condição> then
begin
comando(s);
end;
Onde:
Unidade 3 113
Universidade do Sul de Santa Catarina
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media: real; { Média das duas provas }
begin
write(“Nome do aluno: “);
readln(nome);
write(“Nota da P1: “);
readln(p1);
write(“Nota da P2: “);
readln(p2);
media := (p1 + p2) / 2;
Forma composta
if <condição> then
begin
comando(s)Then;
end
else
begin
comando(s)Else;
end;
Onde:
114
Programação Numérica
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media: real; { Média das duas provas }
begin
write(“Nome do aluno: “);
readln(nome);
write(“Nota da P1: “);
readln(p1);
write(“Nota da P2: “);
readln(p2);
media := (p1 + p2) / 2;
Unidade 3 115
Universidade do Sul de Santa Catarina
h) Estrutura de repetição
Estruturas de repetição são utilizadas toda vez que necessitamos
executar um ou mais comandos diversas vezes. Existem três tipos
diferentes de estruturas, conforme poderemos ver a seguir:
while <expressão> do
begin
comando(s);
end;
Onde:
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media : real; { Média das duas provas }
alunos, { Quantidade de alunos da
turma }
cont : integer; { variável contadora }
begin
cont := 0;
116
Programação Numérica
cont := cont + 1;
end;
end.
repeat
comando(s);
until <expressão>;
Onde:
Unidade 3 117
Universidade do Sul de Santa Catarina
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media : real; { Média das duas provas }
alunos, { Quantidade de alunos da turma
}
cont : integer; { variável contadora }
begin
cont := 0;
repeat
write(“Nome do aluno: “);
readln(nome);
write(“Nota da P1: “);
readln(p1);
write(“Nota da P2: “);
readln(p2);
media := (p1 + p2) / 2;
cont := cont + 1;
until (cont > alunos);
end.
118
Programação Numérica
Exemplo :
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media : real; { Média das duas provas }
alunos, { Quantidade de alunos da turma
}
i : integer; { variável de controle }
begin
write(“Quantidade de alunos da turma: “);
realn(alunos);
Unidade 3 119
Universidade do Sul de Santa Catarina
begin
writeln(“O aluno “ + nome + “ está aprovado
com média “ + media);
end
else
begin
writeln(“O aluno “ + nome + “ NÃO está
aprovado e sua média foi “ + media);
end;
end;
end.
Onde:
120
Programação Numérica
Exemplo:
program verificaAprovacao;
var
nome : String[50]; { Nome do aluno }
p1, { Nota da primeira prova }
p2, { Nota da segunda prova }
media : real; { Média das duas provas }
alunos, { Quantidade de alunos da turma
}
i : integer; { variável de controle }
begin
write(“Quantidade de alunos da turma: “);
realn(alunos);
Unidade 3 121
Universidade do Sul de Santa Catarina
Procedure (Procedimento)
Uma procedure é praticamente igual a um programa principal,
com variáveis e instruções, com a única diferença de poder conter
parâmetros.
122
Programação Numérica
procedure <nomeDaProcedure>
(<listaDeParâmetros>);
<variáveis>
begin
comando(s);
end;
Onde:
Toda vez que uma procedure necessita de algum valor externo para
funcionar, esse valor é passado por meio de um parâmetro.
Unidade 3 123
Universidade do Sul de Santa Catarina
Exemplo:
program exemplo5;
var
m, p1, p2: real;
procedure informaAprovacao(media: real);
begin
if (media >= 7) then
begin
writeln(“O aluno está aprovado com média “ +
media);
end
else
begin
writeln(“O aluno NÃO está aprovado e sua média
foi “ + media);
end;
end;
begin
write(“Nota da P1: “);
readln(p1);
write(“Nota da P2: “);
readln(p2);
m := (p1 + p2) / 2;
informaAprovacao(m);
end.
Os parâmetros poderão ser passados por valor ou por referência.
Veja a explicação de cada um deles a seguir:
124
Programação Numérica
program exemplo5;
var
m, p1, p2: real;
Unidade 3 125
Universidade do Sul de Santa Catarina
Function (Função)
Conforme informado, as funções são muito parecidas com
os procedimentos, diferenciando apenas pelo fato de sempre
retornar um valor. Elas possuem praticamente a mesma sintaxe
e funcionamento, ou seja, pode possuir parâmetros e variáveis e
possui nome e corpo principal. Toda vez que ela for chamada de
outro módulo, o fluxo é desviado para o início da função e, ao final,
retorna para o local onde foi invocada. Neste momento, ao contrário
do procedimento, a função volta para o local onde foi chamada
com o valor de seu retorno. Esse valor poderá ser atribuído a uma
variável ou utilizada para algum cálculo ou verificação.
function <nomeDaFunction>
(<listaDeParâmetros>) : <tipoRetorno>;
<variáveis>
begin
comando(s);
end;
126
Programação Numérica
Onde:
Exemplo:
program exemplo6;
var
m, p1, p2: real;
Unidade 3 127
Universidade do Sul de Santa Catarina
begin
leNotas(p1, p2);
m := calculaMedia(p1, p2);
informaAprovacao(m);
end.
128
Programação Numérica
Funções utilitárias
O Pascal possui uma série de funções e procedimento em
bibliotecas que variam de fabricante para fabricante, mas
geralmente os nomes são os mesmos ou muito parecidos.
Unidade 3 129
Universidade do Sul de Santa Catarina
Síntese
Atividades de autoavaliação
130
Programação Numérica
Essa afirmação é:
a) ( ) Verdadeira.
b) ( ) Falsa.
2. Construa um programa Pascal que leia a base e a altura de um
retângulo e informe sua área e seu perímetro.
Unidade 3 131
Universidade do Sul de Santa Catarina
Saiba mais
132
4
unidade 4
Objetivos de aprendizagem
Entender o que é uma equação linear;
Seções de estudo
Seção 1 Introdução ao sistema de equações linear
134
Programação Numérica
7x + 4y = 9
9x - 8y + 7z = -6
5
k + 3 35 j + m = 7 4
6
2 x + 4 y = 9 : não é equação linear, pois existe potenciação
de variável;
Unidade 4 135
Universidade do Sul de Santa Catarina
a1 . x + a2 . y = b
Onde:
a1 . x1 + a2 . x2 ... am . xm = b
Onde:
136
Programação Numérica
Onde:
∑a x
j =0
ij j = bi
∑a x
j =0
ij j = bi para i = 1,2,..., m
Unidade 4 137
Universidade do Sul de Santa Catarina
A1 . x1 + A2 . x2 + ... + Am . xm = b
A matriz de coeficientes
x matriz das variáveis
b matriz dos termos independentes
Acompanhe a sua aplicação nos exemplos a seguir:
138
Programação Numérica
7 ⋅ x1 + 4 ⋅ x2 + 3 ⋅ x3 = 9
x + 2 ⋅ x + 3 ⋅ x = −4
1 2 3
x1 + 7 ⋅ x2 = 2
8 ⋅ x2 + 2 ⋅ x3 = 0
7 4 3 9
1 2 3 x1 −4
⋅ x2 =
1 7 0 2
x3
0 8 2 0
x
A b
an1 an 2 anm bn
7 ⋅ x1 + 4 ⋅ x2 + 3 ⋅ x3 = 9
x + 2 ⋅ x + 3 ⋅ x = −4
1 2 3
x1 + 7 ⋅ x2 = 2
8 ⋅ x2 + 2 ⋅ x3 = 0
7 4 3 9
1 2 3 x
⋅ x2 = −4
1
1 7 0 2
x3
x
0 8 2 0
A b
Unidade 4 139
Universidade do Sul de Santa Catarina
7 4 3 9
1
2 3 − 4
1 7 0 2
0 8 2 0
2 ⋅ x + y = 7
x + 3⋅ y = 6
x + 5⋅ y = 8
2 ⋅ 3 + 1 7
3 + 3 ⋅1 6
3 + 5 ⋅1 8
6 + 1 = 7
3 + 3 = 6
3 + 5 = 8
140
Programação Numérica
2 ⋅ x + 3 ⋅ y = 10
2 ⋅ x + 3 ⋅ y = 7
4 ⋅ x + 5 ⋅ y = 18
3 ⋅ x + 4 ⋅ y = 14
x + 5⋅ y = 2
3 ⋅ x + 15 ⋅ y = 6
Unidade 4 141
Universidade do Sul de Santa Catarina
Exemplo –
5 x − 3 y = 0
x + 2 y = 0
−2 x + 7 y = 2
Exemplo –
x + y = 9
3 x + 4 y = 2
2 x − 4 y = 5
142
Programação Numérica
Exemplo –
2 x − y + 3z = 0
4 x + 2 y − z = 0
x − y + 2z = 0
Exemplo –
x + y = 0
x + z = 0
x + y − z = 0
Exemplo –
x + y + z + k = 0
x + y + k = 0
2 x + 3 y + k = 0
Exemplo –
x + y + z = 0
9 x − z = 0
Unidade 4 143
Universidade do Sul de Santa Catarina
Operações elementares
A forma mais simples de resolver um sistema linear é substituir
o sistema dado por um novo sistema que possua o mesmo
conjunto-solução, porém sua resolução é mais simples. Para
obter esse novo sistema, devemos aplicar sobre a matriz
aumentada uma sucessão de passos aplicando os três tipos de
operações elementares sobre linhas para eliminar as incógnitas.
Acompanhe:
2 4 6 2 4 6
1 2 3 ⇒ L = 2 • L ⇒ 2 4 6
2 2
3 6 3 3 6 9
2 4 6 2 4 6
1 2 3 ⇒ L ↔ L ⇒ 3 6 9
2 2
3 6 3 1 2 3
2 4 6 4 8 12
1 2 3 ⇒ L = L + 2 ⋅ L ⇒ 1 2 3
1 1 2
3 6 3 1 2 3
Matriz escalonada
Uma matriz está na forma escalonada reduzida se:
144
Programação Numérica
Matrizes escalonadas: A e C.
1 2 0 4 1 0 0
0 0
A = 0 1 0 7 B=
C = 0 1 0
0 0
0 0 1 1 0 0 1
1 0 0 4 1 0 0
1 0
A = 0 0 0 7 B= C = 0 0 0
0 0 1 1 0 2 0 0 1
Unidade 4 145
Universidade do Sul de Santa Catarina
1 – Método de eliminação
O método de eliminação consiste em transformar uma matriz
aumentada do sistema linear Ax = B em uma forma escalonada
por linhas pela aplicação e repetindo as operações elementares.
Cabe salientar que essas operações não alteram a solução,
conforme visto. Acompanhe:
Descrição do algoritmo
an(11) a(1)
n2 anm
(1)
bn(1)
146
Programação Numérica
0 an( 22) anm ( 2)
bn( 2 )
Onde
ai(11)
a ( 2)
ij =a (1)
ij − a ⋅ (1)
(1)
1j
a11
ai(11)
bi
( 2)
=b
i
(1)
− b ⋅ (1)
(1)
a11
1
para i, j = 1, 2, ..., n.
Unidade 4 147
Universidade do Sul de Santa Catarina
0 0 anm ( 3)
bn(3)
Onde
ai(11)
aij(3) = aij( 2 ) − a2( 2j) ⋅
a11(1)
ai(22 )
bi(3) = bi( 2 ) − b2( 2 ) ⋅
a22
( 2)
para i, j = 1, 2, ..., n.
0 a12(1) a12( ) a2( 2,n)−1 a2( 2n) b2( )
1 2
0 a12( ) a3( ,n)−1 a33n b3( )
1 3 3
0
0 0 0
0 0 0 an( n−−1,1n)−1 ( n −1)
an −1,n bn −1 ( n −1)
0 0 0 0 an( ,n) bn( )
n n
148
Programação Numérica
Onde
ai(,nn−−11)
aij( n ) = aij( n −1) − an( n−−1,1j) ⋅
an( n−−1,1n)−1
para i, j = 1, 2, ..., n.
a12( ) ⋅ x3 + a3(3,n)−1 ⋅ xn −1 + a33n ⋅ xn = b3(3)
1
( n −1) ( n −1) ( n −1)
an −1,n −1 ⋅ xn −1 + an −1,n ⋅ xn = bn −1
ann,n ⋅ xn = bn( )
n
a11(1) 0 0 0 0 b1(1)
( 2)
0 a12 0 0 0 b2
(1)
(1) ( 3)
0 0 a12 0 0 b3
0 0 0
0 0 0 an( n−−1,1n)−1 0bn( n−1−1)
0 an( ,n) bn( )
n n
0 0 0
Unidade 4 149
Universidade do Sul de Santa Catarina
a11(1) 0 0 0 0 b1(1)
( 2)
0 a12 0 0 0 b2
(1)
(1) ( 3)
0 0 a12 0 0 b3
0 0 0
0 0 0 an( n−−1,1n)−1 0bn( n−1−1)
0 an( ,n) bn( )
n n
0 0 0
Seja o sistema:
6 ⋅ x1 + 2 ⋅ x2 − x3 = 7
2 ⋅ x1 + 4 ⋅ x2 + x3 = 7
3 ⋅ x + 2 ⋅ x + 8 • x = 13
1 2 3
150
Programação Numérica
6. x1 + 2 . x2 - x3 = 7 ⇒ x1 = 1
Seja o sistema:
2 ⋅ x1 + 2 ⋅ x2 + 4 ⋅ x3 = 10
x1 + x2 + 3 ⋅ x3 = 9
x + 3 ⋅ x + 4 • x = 17
1 2 3
Matricialmente, temos:
2 2 4 x1 10
1 1 3 ⋅ x = 9
2
1 3 4 x3 17
Matriz aumentada:
2 2 4 10
1 1 3 9
1 3 4 17
Unidade 4 151
Universidade do Sul de Santa Catarina
Passo 1: L2 = L1 - 2 . L2
2 2 4 10 2 2 4 10
1 1 3 9 ⇒ L = L − 2 • L ⇒ 0 0 − 2 − 8
2 1 2
1 3 4 17 1 3 4 17
Passo 3: L2 = L1 - 2 . L2
2 2 4 10 2 2 4 10
1 3 4 17 ⇒ L = L − 2 • L ⇒ 0 − 4 − 4 − 24
2 1 2
0 0 − 2 − 8 0 0 − 2 − 8
2 2 4 10 L2 = L2 2 2 4 10
−4
0 − 4 − 4
− 24 ⇒ ⇒ 0 1 1 6
L3
0 0 −2 − 8 L = 0 0 1 4
3 −2
Passo 5: L2 = L2 - L3
2 2 4 10 2 2 4 10
0 1 1 6 ⇒ L = L − L ⇒ 0 1 0 2
2 2 3
0 0 1 4 0 0 1 4
Passo 6: L1 = L1 - 4 . L3
2 2 4 10 2 2 0 − 6
0 1 0 2 ⇒ L = L − 4 • L ⇒ 0 1 0 2
1 1 3
0 0 1 4 0 0 1 4
L
Passo 7: L1 = 1 − L2
2
2 2 0 − 6 1 0 0 − 5
0 1 0 2 ⇒ L = L1 − L ⇒ 0 1 0 2
1
2
2
0 0 1 4 0 0 1 4
152
Programação Numérica
Exemplo:
Seja o sistema:
2 ⋅ x1 + 2 ⋅ x2 + 4 ⋅ x3 = 8
x1 + x2 + 3 ⋅ x3 = 5
x + 3⋅ x + 4 • x = 8
1 2 3
Matricialmente, temos:
2 2 4 x1 8
1 1 3 ⋅ x = 5
2
1 3 4 x3 8
Considerando
5 −1 −1
4 2
A = 1
−1
−1 1
4 2
−1 1 0
2
Temos
5 − 1 −1
4 2 8 1
x = 1 −1
1 ⋅ 5 ⇒ x = 1
4 2
−1 1 8 1
2
0
b
A−1
Unidade 4 153
Universidade do Sul de Santa Catarina
3. Método geométrico
Quando o sistema linear for formado por duas equações com
duas incógnitas, significa dizer que a solução será equivalente a
descobrir a intersecção de duas retas.
a ⋅ x + b ⋅ y = c
d ⋅ x + e ⋅ y = f
Sendo que a e b não podem ser simultaneamente nulos nem d e e.
154
Programação Numérica
Unidade 4 155
Universidade do Sul de Santa Catarina
Síntese
Atividades de autoavaliação
156
Programação Numérica
Unidade 4 157
Universidade do Sul de Santa Catarina
Saiba mais
158
5
unidade 5
Ajustamento de curvas
Objetivos de aprendizagem
Entender o que é Diagrama de Dispersão;
Seções de estudo
Seção 1 Introdução
Seção 1 – Introdução
A engenharia normalmente utiliza os testes de laboratório para
validar os sistemas reais. Os pontos obtidos como resultados desses
testes demonstram a relação entre uma variável independente ou
explicativa com uma ou mais variáveis dependentes ou respostas.
y = β0 + β1x
y é a variável dependente, pois depende do valor de x;
x é a variável independente, pois não depende de nenhuma outra
variável.
A partir desses pontos, é formado um gráfico denominado
Diagrama de Dispersão, sendo praticamente impossível encontrar
uma curva que passe por todos esses pontos descrevendo com todas
as propriedades o sistema observado em laboratório. Isso se deve às
possíveis alterações de algumas variáveis durante o experimento e os
erros dos dados experimentais obtidos. Observe:
160
Programação Numérica
Unidade 5 161
Universidade do Sul de Santa Catarina
1. A partir de uma tabela de pontos (x1, y1), (x2, y2), ..., (xn, yn), com
xi pertencentes ao intervalo [a,b] e das m + 1 funções
g0(x), g1(x), ..., gm(x), contínuas em [a,b], devemos encontrar m + 1
coeficientes β0, β1, ..., βm, de tal forma que
f(x) = β0g0(x) + β1g1(x) + ... + βmgm(x) se aproxime de y(x),
fornecedora dos valores y0, y, ..., yn dos pontos da tabela.
n
= ∑ yi − f ( xi )
2
i =1
n
= ∑ yi − β 0 g 0 ( x ) − β1 g1 ( x ) − − β m g m ( x )
2
i =1
162
Programação Numérica
∂D n
= 2 ⋅ ∑ yi − β 0 g 0 ( xi ) − β1 g1 ( xi ) − − β m g m ( xi ) ⋅ g 0 ( xi )
∂β 0 i =1
∂D n
= 2 ⋅ ∑ yi − β 0 g 0 ( xi ) − β1 g1 ( xi ) − − β m g m ( xi ) ⋅ g1 ( xi )
∂β1 i =1
∂D n
= 2 ⋅ ∑ yi − β 0 g 0 ( xi ) − β1 g1 ( xi ) − − β m g m ( xi ) ⋅ g 2 ( xi )
∂β 2 i =1
∂D n
= 2 ⋅ ∑ yi − β 0 g 0 ( xi ) − β1 g1 ( xi ) − − β m g m ( xi ) ⋅ g m ( xi )
∂β m i =1
n
Para simplificar, substituiremos ∑ por ∑, rearranjando as
i =1
( ∑ g ( x ) g ( x i ) ) β + ( ∑ g ( x ) ) β + + ( ∑ g ( x ) g ( x i ) ) β = ∑ y g ( x )
0 i 1 0 1 i
2
1 1 i m m i 1 i
( ∑ g ( x ) g ( x i ) ) β + ( ∑ g ( x )g ( x i ) ) β + + ( ∑ g ( x ) ) β = ∑ y g ( x )
0 i m 0 1 i m 1 m i
2
m i m i
Unidade 5 163
Universidade do Sul de Santa Catarina
i =1
Simplificando:
n ∑ x ⋅ β
i ∑ yi
=
0
∑ xi ∑ x β 1 ∑ yi xi
2
i
164
Programação Numérica
Resolvendo:
n ⋅ ∑ yi xi − ∑ xi ⋅ ∑ yi
β1 =
n ⋅ ∑ xi2 − ( ∑ xi )
2
∑ yi − ( ∑ xi ) β1
β0 =
n
Exemplo:
i xi yi
1 1.3 2.0
2 3.4 5.2
3 5.1 3.8
4 6.8 6.1
5 8.0 5.8
∑x
i =1
i = 1.3 + 3.4 + 5.1 + 6.8 + 8.0 = 24.6
∑x
i =1
2
i = 1.32 + 3.42 + 5.12 + 6.82 + 8.02 = 149.5
∑y
i =1
i = 2.0 + 5.2 + 3.8 + 6.1 + 5.8 = 22.9
∑ x y = (1.3 + 2.0 ) + ( 3.4 + 5.2 ) + ( 5.1 + 3.8) + ( 6.8 + 6.1) + (8.0 + 5.8) = 127.54
i=1
i i
Unidade 5 165
Universidade do Sul de Santa Catarina
i xi yi
1 1.3 2.69
2 3.4 3.78
3 5.1 4.67
4 6.8 5.56
5 8.0 6.19
Se g0(x) = 1, g1(x) = x1, g2(x) = x2, ..., gm(x) = xm, onde xi, com
i = 1, 2, ..., m, são variáveis distintas, podemos deduzir a seguinte
equação:
166
Programação Numérica
β0 @ β1
Exemplo:
i x1i x2i yi
1 -1 -2 13
2 0 -1 11
3 1 0 9
4 2 1 4
5 4 1 11
6 5 2 9
7 5 3 1
8 6 4 -1
∑x
i =1
1i = −1 + 0 + 1 + 2 + 4 + 5 + 5 + 6 = 22
∑x
i =1
2i = −2 + ( −1) + 0 + 1 + 1 + 2 + 3 + 4 = 8
∑ x = ( −1) + 02 + 12 + 22 + 52 + 52 + 62 = 108
2 2
1i
i =1
∑x = ( −2 ) + ( −1) + 02 + 12 + 12 + 22 + 32 + 42 = 36
2 2 2
2i
i =1
Unidade 5 167
Universidade do Sul de Santa Catarina
∑x
i =1
x = ( −1) ⋅ ( −2 ) + 0 ⋅ ( −1) + 1 ⋅ 0 + 2 ⋅1 + 4 ⋅1 + 5 ⋅ 2 + 5 ⋅ 5 + 6 ⋅ 4 = 57
1i 2 i
∑y
i =1
i = 13 + 11 + 9 + 4 + 11 + 9 + 1 + ( −1) = 57
∑yx
i =1
i 1i = 13 ⋅ ( −1) + 11 ⋅ 0 + 9 ⋅1 + 4 ⋅ 2 + 11⋅ 4 + 9 ⋅ 5 + 1⋅ 5 + ( −1) ⋅ 6 = 92
∑yx
i =1
i 2i = 13 ⋅ ( −2 ) + 11 ⋅ ( −1) + 9 ⋅ 0 + 4 ⋅1 + 11 ⋅1 + 9 ⋅ 2 + 1 ⋅ 3 + ( −1) ⋅ 4 = −5
gm(x) = xm
168
Programação Numérica
n
∑x i ∑x 2
i
∑x
β0 ∑ i
m
i y
∑ xi ∑x ∑x ∑x
β1 ∑ yi xi
m +1
2
i
3
i i
m+2 2
∑ xi ∑x ∑x ⋅∑x
β 2 = ∑ yi xi
2 3 4
i i i
∑ xim β y xm
∑x m +1
i ∑i
x m+2
∑i
x 2m
m
∑ i i
Exemplo:
∑x
i =1
i = −2 + ( −1.5 ) + 0 + 1 + 2.2 + 3.1 = 2.8
Unidade 5 169
Universidade do Sul de Santa Catarina
∑y
i =1
i = −30.5 + ( −20.5 ) + ( −3.3) + 8.9 + 16.8 + 21.4 = −6.9
∑ x y = ( −2 ) ⋅ ( −30.5) + ⋅ ( −20.5) ⋅ ( −1.5) + ( −3.3) ⋅ 0 + 8.9 ⋅1 + 16.8 ⋅ 2.2 + 21.4 ⋅ 3.1 = 203.5
i =1
i i
∑ x x = ( −2 ) ⋅ ( −30.5) + ⋅ ( −20.5 ) ⋅ ( −1.5 ) + ( −3.3) ⋅ 02 + 8.9 ⋅12 + 16.8 ⋅ 2.22 + 21.4 ⋅ 3.12 = 128.416
2 2 2
i i
i =1
170
Programação Numérica
e β1 positivos. Observe:
Unidade 5 171
Universidade do Sul de Santa Catarina
Exemplo:
i xi yi
1 0.1 5.9
2 1.5 8.8
3 3.3 12.0
4 4.5 19.8
5 5.0 21.5
172
Programação Numérica
Unidade 5 173
Universidade do Sul de Santa Catarina
Síntese
174
Programação Numérica
Atividades de autoavaliação
Unidade 5 175
Universidade do Sul de Santa Catarina
Saiba mais
176
Para concluir o estudo
180
Sobre o professor conteudista
Unidade 1
1) c)
2) 2, 1, 3
3) d)
Unidade 2
1) a) Verdadeira
2)
Algoritmo Exerc3;
Var
valor : real;
n1, n2, n5, n10: inteiro;
Início
Imprimir(“Informe o valor: “);
Ler(valor);
Unidade 3
1) a) Verdadeira
2)
program exerc3;
var
l, h, area, perimetro: real;
begin
write(‘Informe o lado do retângulo: ‘);
readln(l);
write(‘Informe a altura do retângulo: ‘);
readln(h);
area = b * h;
perimetro = 2 * b + 2 * h;
var
l, h, area, perimetro: real;
184
Programação Numérica
begin
write(‘Informe o lado do retângulo: ‘);
readln(l);
write(‘Informe a altura do retângulo: ‘);
readln(h);
Unidade 4
1) c ) e d ).
2) F, V, F, F
3)
x1 - 1; x2 - 2; x3 - 4
4)
x1 - 3; x2 - 5; x3 - 7
Unidade 5
1) a) Verdadeira
185
Universidade do Sul de Santa Catarina
2)
5
∑x
i=1
i = 21.2
5
∑x
i =1
2
i = 123.28
5
∑y
i=1
i = 14.0
5
∑x y
i=1
i i = 68.37
186
Biblioteca Virtual