Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila introdução a programação 1, Slides de Algoritmos e Programação

Nesta apostila você,sabera lidar com algoritimos

Tipologia: Slides

2015

Compartilhado em 10/07/2015

Evandro1
Evandro1 🇧🇷

1 documento

1 / 58

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Tubarão / Santa Catarina / BRAZIL
E-Mail : osmarjr@unisul.rct-sc.br
http://tec1.unisul.rct-sc.br/osmarjr/
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Pré-visualização parcial do texto

Baixe Apostila introdução a programação 1 e outras Slides em PDF para Algoritmos e Programação, somente na Docsity!

Tubarão / Santa Catarina / BRAZIL E-Mail : [email protected] http://tec1.unisul.rct-sc.br/osmarjr/

Índice

Fases de um Algoritmos

Quando temos um problema e vamos utilizar um computador para resolve-lo inevitavelmente temos que passar pelas seguintes etapas:

a) Definir o problema. b) Realizar um estudo da situação atual e verificar quais a(s) forma(s) de resolver o problema. c) Terminada a fase de estudo, utilizar uma linguagem de programação para escrever o programa que deverá a princípio, resolver o problema. d) Analisar junto aos usuários se o problema foi resolvido. Se a solução não foi encontrada, deverá ser retornado para a fase de estudo para descobrir onde está a falha.

Estas são de forma bem geral, as etapas que um analista passa, desde a apresentação do problema até a sua efetiva solução. Iremos, neste curso, nos ater as etapas de estudo, também chamada de análise, e a etapa de programação. Mas antes vamos definir o seguinte conceito: Programar um computador consiste em elaborar um conjunto finito de instruções, reconhecidas pela máquina, de forma que o computador execute estas instruções. Estas instruções possuem regras e uma Sintaxe própria, como uma linguagem tipo português ou inglês, sendo isto chamadas de linguagem de computador. No mundo computacional existe uma grande variedade de linguagens Pascal, C, C++, Cobol, Fortran, etc…. Nós iremos enfocar uma delas, o Pascal.

Estrutura de Algoritmos

Antes de utilizarmos uma linguagem de computador, é necessário organizar as ações a serem tomadas pela máquina de forma organizada e lógica, sem nos atermos as regras rígidas da Sintaxe de uma linguagem. Para isto utilizaremos uma forma de escrever tais ações, conhecida como algoritmo, ou pseudo-código. Conceituando: Algoritmo consiste em um conjunto lógico e finito de ações ( instruções ) que resolvem um determinado problema.

Os algoritmos terão a seguinte estrutura:

ALGORITMO <definições> INÍCIO FIM

Em Pascal ficaria da seguinte forma:

PROGRAM ; <definições> BEGIN ; END.

Na formação do nome da variável de um nome significativo, para que se possa ter idéia do seu conteúdo sem abri-lá. Se utilizar palavras para compor o nome da variável utilize o “_ “ underline para separar as palavras.

Conteúdo de uma Variável

Dados - Elementos conhecidos de um problema Informação - Um conjunto estruturado de dados, transmitido conhecimento

Tipos de Variáveis

Considere a fórmula matemática simples do calculo do volume de uma esfera:

V = R

π^3

onde se encontram:

1- valores que podem ser classificados como: a) valores constantes, invariantes em todas as aplicações da fórmula, no caso dos valores 4, 3 e π aos denomina-se constantes; b) valores a serem substituídos na fórmula, em cada aplicação; a representação destes valores, usualmente é feita através de letras, que recebem o nome de variáveis e tornam a fórmula genérica, possível de ser aplicada para resolver uma certa classe de problemas e não apenas um problema específico.

2 - Operações a serem feitas sobre determinados operandos (Valores), para a obtenção da solução do problema.

Tipos de Dados

O Pascal exige que no momento que formos trabalhar com variáveis, indiquemos o tipo de

informação que uma variável pode conter, isto é, se uma dada posição de memória armazenará um número ou

uma letra etc. Para isto, a linguagem Pascal possui definido alguns tipos que deverão ser usados quando

formos trabalhar com variáveis. Alguns tipos são:

Algoritmo Pascal^ Descrição

a) Inteiro a) INTEGER: Representa números entre - 32768 até + 32767. ocupa 2 bytes na

memória.

b) Real b) REAL: Representa os números entre 2.9 x 10 -39^ até 1.7 x 10^38. Ocupa 6 bytes na

memória.

e) Caracter e) CHAR: Representa um dos caracteres, da tabela ASCII. Ocupa 1 byte na

memória.

d) Cadeia f) STRING: Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na memória.

g) Lógica g) BOOLEAN: Valor lógico. Assuma somente dois valores: TRUE(Verdade) ou

FALSE(Falso). ocupa 1 byte na memória.

c) WORD: Números de 0 até 65535. Ocupa 2 bytes na memória.

d) BYTE: Números de 0 até 255. Ocupa 1 byte na memória.

h) Shor Int Representa os números entre -128 até 128. Ocupa 1 bytes na memória.

i) LongInt Representa os números entre - 2.147.483.648 até 2.147.483.648. Ocupa

4 bytes na memória.

j) Single Representa os números entre 1.5 x 10 -45^ até 3.4 x 10^38. Ocupa 4 bytes na

memória.

l) Double Representa os números entre 5 x 10 -324^ até 1.7 x 10^308. Ocupa 8 bytes na

memória.

Iremos gradativamente trabalhar com cada um destes tipos e mostrar as suas características.

b) Atribuímos à variável “Número” o valor 10

A memória se comportaria da seguinte forma, de acordo com os itens acima:

a) Variável^ Conteúdo

Número indefinido

b) Variável^ Conteúdo

Número 10

Variáveis do tipo CHAR(Caracter) e STRING(Cadeia)

As definições de variáveis como sendo do tipo CHAR e STRING, possuem algumas curiosidades que

merecem um cuidado especial por parte do usuário.

Uso das aspas ( ‘ )

Quando estivermos fazendo a atribuição de um valor para uma variável do tipo CHAR (Caracter) ou

STRING (Cadeia), temos que ter o cuidado de colocar o valor ( dado ) entre aspas ( ‘ ), pois esta é a forma de

informar que a informação é caracter.

Exemplo :

ALGORITMO Teste VARIÁVEIS Letra : CARACTER Nome : CADEIA INICIO Letra ¬ ‘A’ Nome ¬ ‘João’ FIM

Manipulação de caracteres individuais em STRING’s (Cadeias)

Muitas vezes é necessário manipular caracteres individuais em uma STRING (Cadeia). O Pascal possui uma forma toda especial de permitir tal operação, através do uso de colchetes( [ ] ) logo após o Nome da variável do tipo STRING (Cadeia) , e o número do caracter que se deseja manipular entre os colchetes.

Exemplo : Atribuir o primeiro caracter de uma STRING a uma variável do tipo CHAR.

ALGORITMO AtribuiString; VARIÁVEIS letra : CARACTER Nome : CADEIA INICIO Nome ¬ ‘Joao’

letra ¬ Nome[ 1 ]

FIM

Quando definimos uma variável como sendo do tipo STRING não estamos alocando 1 posição de memória

apenas ( uma caixa, pela analogia inicial ), mas na verdade, estamos alocando até 255 caixas, uma para cada

caracter da STRING ( lembre-se que uma STRING pode ter no máximo 255 caracteres ). Ao utilizarmos o

símbolo de colchete, estamos na verdade indicando qual o caracter ( qual a caixa ) desejamos manipular.

De acordo com o Exemplo acima, teríamos na memória a seguinte situação:

a) Alocamos 255 bytes ( caracteres ) na memória. A estas posições de memória é dado o Nome de “Nome”.

Inicialmente estas posições de memória ( Caixas ) possuem o conteúdo indefinido.

b) Alocamos 1 byte ( caracter ) na memória. A este caracter é dado o Nome de “Letra”. Inicialmente esta

posição de memória possuí o conteúdo indefinido.

c) Na memória temos a seguinte situação:

Nome

Letra

d) Atribuímos a variável “Nome” o valor “João”, obtendo na memória a seguinte configuração

Nome

‘J’ ‘o’ ‘a’ ‘o’

e) Atribuímos a variável “Letra” o primeiro caracter da variável “Nome”, ou seja, o conteúdo da primeira

posição de memória ( caixa ). Na memória teremos a seguinte configuração:

Nome

‘J’ ‘o’ ‘a’ ‘o’

Letra

‘J’

Obs.: É possível definir variáveis do tipo STRING(Cadeia) com menos de 255 caracteres. Para isto, basta

colocar, após a palavra STRING(Cadeia), o número de caracteres desejados entre colchetes ( [ ] ).

Exemplo :

ALGORITMO Define

VARIÁVEIS

Nome: CADEIA[ 80 ]

INICIO

FIM

Desta forma, o espaço ocupado por uma variável STRING(Cadeia) passa de 255 bytes para apenas 80 bytes,

na memória.

Operadores

Operadores matemáticos

Os operadores matemáticos são os seguintes:

a) Adição : +

b) Subtração : -

c) Multiplicação : *

d) Divisão : /

e) Divisão inteira : DIV (QUOCIENTE)

f) Resto da divisão : MOD (RESTO)

g) Exponenciação : ** h) Diferença : <> i) Menor Igual : <= j) Maior Igual : >=

Operadores Lógicos

Os operadores lógicos, realizam as operações da álgebra booleana. Os operadores são os seguintes:

a) AND (E) b) OR (OU) c) NOT (NÃO) d) XOR (NÃO OU)

Exemplo :

a) Operador AND:

TRUE AND TRUE => TRUE

TRUE AND FALSE => FALSE

FALSE AND TRUE => FALSE

FALSE AND FALSE => FALSE

b) Operador OR:

TRUE OR TRUE => TRUE

TRUE OR FALSE => TRUE

FALSE OR TRUE => TRUE

FALSE OR FALSE => FALSE

c) Operador NOT:

NOT TRUE => FALSE

NOT FALSE => TRUE

d) Operador XOR:

TRUE XOR TRUE => FALSE

TRUE XOR FALSE => TRUE

FALSE XOR TRUE => TRUE

FALSE XOR FALSE => FALSE

Exercícios 1 :

1 ) indique qual o resultado será obtido das seguintes expressões:

a) 1 / 2

b) 1 DIV 2 c) 1 MOD 2

d) ( 200 DIV 10 ) MOD 4

e) 5**2 + 3

f) 6 +19-

g) 3,0* 5,0 +

h) 1/4+

i) 29,0/7+

j) 3/6,0-

2 ) Indique o resultado das seguintes expressões:

a) 2 > 3

b) ( 6 < 8 ) OR ( 3 > 7 )

c) ((( 10 DIV 2 ) MOD 6 ) > 5 ) XOR ( 3 < ( 2 MOD 2 ) )

d) NOT ( 2 < 3 )

  1. Escreva o comando de atribuição e resolva a expressão das seguintes formulas matemáticas.

a) X

A

B

C

D

E

F

onde A= 2, B= 6, C = 3, D=4, E=8, F=

b)

( )

Y

X X X

X

X

= X

2 1

onde X = 2

4 ) Construa o algoritmo que calcule as seguintes expressões:

a) 2 + 3 * { 23 - 12 + [ { ( 123 / 34 ) + 10 } / 2 - 1 * ( 45 - 12 ) ] / 3 }

b) [ ( 2 * 3 ) ^ 2 - 1 ] ^ 4

c) ( 2 + [ 2 * 3 - ( 4 / 20 ) ^ 2 ] )/ ( 10 * { [ ( 7 * 3 ) - 2 ] ^ 3 })

  1. Escreva os comandos de atribuição para as seguintes fórmulas matemáticas.

a) X

B A F

A

3

b) Y H ( )

X

H H

H

^

2

c) X^

a b e f

c d g h

i

j

Comandos de Entrada e Saída

O computador não é uma máquina isolada, pois ele precisa se comunicar com o mundo exterior com

vídeo, impressora, teclado, discos, fitas etc. Para realizar esta comunicação existem comandos que permitem

que informações sejam exibidas, por Exemplo, no vídeo, como também existem comandos que permitem que

informações sejam colocadas na memória do computador através do teclado do PC.

Os comandos que iremos ver são os comandos LEIA e ESCREVA, respectivamente, comando de

entrada e de Saída ( em Pascal escreve-se READ e WRITE ).

Exemplo 1 : Escrever um algoritmo para ler um valor numérico do teclado e atribuí-lo a uma variável do tipo

numérica.

ALGORITMO LeNúmero

VARIÁVEIS

Num : INTEIRO

INICIO

LEIA(Num)

FIM

O algoritmo acima, executará os seguintes comandos:

a) Define uma variável rotulada “Num”, a qual só poderá armazenar dados numéricos, que estejam

compreendidos entre - 32768 a + 32767 ( INTEIRO ), sendo que inicialmente o conteúdo desta

variável está indefinido.

b) interrompe o processamento até que uma informação seja digitada, seguida do pressionamento da

tecla ENTER. Caso a informação seja digitada seja compatível com o tipo INTEGER

(INTEIRO), este valor será armazenado dentro da variável “Num”.

Exemplo 2 : Fazer um algoritmo para escrever no vídeo do PC uma mensagem qualquer.

ALGORITMO EscreveMsg

INICIO

ESCREVA (‘Alo Mundo’)

FIM

Obs.: A mensagem está entre aspas porque representa uma cadeia de caracteres.

É perfeitamente possível mandar escrever o conteúdo de variáveis no vídeo. Desta forma, o Exemplo

acima poderia ser escrito do seguinte modo:

ALGORITMO EscreveMsg

VARIÁVEIS

Msg: : CADEIA

INICIO

Msg ¬ ‘Alo Mundo’

ESCREVA (Msg)

FIM

Obs.: Em Pascal, o Exemplo ficaria como é mostrado abaixo

PROGRAM EscreveMsg;

VAR

Msg : STRING;

BEGIN

Msg : = ‘Alo Mundo’;

WRITE (Msg);

END.

Obs.: Em Pascal, quando usamos os comandos READ e WRITE, o cursor continuará posicionado na mesma

linha. Para evitar tal situação, devemos pular para nova linha. Isto é obtido acrescentando as letras LN ( de

LINE NEW, ou seja, linha nova ) no final dos comandos READ e WRITE. Desta forma os comandos terão a

seguinte grafia: READLN e WRITELN.

Exercícios 2:

  1. Faça um algoritmo para ler as seguintes informações de uma pessoa: Nome, Idade, Sexo, Peso, Altura, Profissão, Rua, Bairro, Cidade, Estado, CEP, Telefone.

  2. Dado as seguintes informações de um funcionário: Nome, idade cargo e o seu salário bruto considere: a) O salário bruto teve um reajuste de 38%. b) O funcionário receberá uma gratificação de 20% do salário bruto. c) O Salário total é descontado em 15% Faça um algoritmo e um algoritmo para:

  • Imprimir Nome, idade e cargo.
  • Imprimir o salário bruto.
  • Imprimir o salário líquido.
  1. Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2

  2. Faça um algoritmo para: a) Ler uma CADEIA em forma de data. Exemplo : ‘26/09/95’ b) escrever o dia , mês e ano desta data.

  3. Uma empresa tem para um determinado funcionário uma ficha contendo o nome, número de horas trabalhadas e o n^0 de dependentes de um funcionário. Considerando que: a) A empresa paga 12 reais por hora e 40 reais por dependentes. b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR. Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de dependentes de um funcionário. Após a leitura, escreva qual o Nome, salário bruto, os valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.

  4. Faça um algoritmo que calcule a média aritmética de 4 valores inteiros.

  5. O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia o nome do automóvel e o preço de fábrica e imprima o nome do automóvel e o preço final.

Exercícios 3:

  1. Faça um algoritmo para ler base e altura de 50 triângulos e imprimir a sua área.

  2. Faça um algoritmo para calcular N!.

  3. Faça um algoritmo para calcular um valor A elevado a um expoente B. Os valores A e B deverão ser lidos. Não usar A** B.

  4. Faça um algoritmo para: a) Ler um valor x qualquer b) Calcular Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+…(x+100).

  5. Faça um algoritmo para somar os números pares < 1000 e ao final imprimir o resultado.

  6. Faça um algoritmo para gerar os termos da seguinte P.G.: 3,9,27,81,…,calcule 0 100º termo.

  7. Ampliando o exercício acima, faça um algoritmo para calcular a soma dos termos da P.G..

  8. Faça um algoritmo para calcular a série Fibonacci até 0 N-ésimo termo. A série tem a seguinte forma: 1,1,2,3,5,8,13,21,34,…

  9. Faça um algoritmo para ler um valor X e calcular Y = X+2X+3X+4X+5X+…+20X

  10. Faça um algoritmo para ler e escrever o Nome, idade e sexo de um número indeterminado de alunos. Ao final escreva o total de alunos lidos.

  11. Para cada nota de compra , tem-se o Nome do produto comprado, o valor e o imposto. Faça um algoritmo que escreva o valor total bruto, o imposto total cobrado e o valor total líquido de todas as notas. Considere 500 notas

  12. O valor aproximado de PI pode ser calculado usando-se a série

S = + + + + +

1 1

1 3

1 5

1 7

1 3 3 3 3 93 ...

sendo (^) Π = 3 S ∗ 32

fazer um algoritmo para calcular e escrever o valor de PI com 51 termos

  1. Faça um algoritmo para ler um valor X e um valor n. Após, calcule a seguinte expressão:

Y

X X X X N

N

  1. Faça um algoritmo para somar os restos da divisão por 3 de 200 números.

  2. Faça um algoritmo que calcule a hipotenusa de 10 triângulos. hipotenusa^2 = cateto^2 + cateto^2

  3. Faça um algoritmo para calcular a área de N quadriláteros. Fórmula: Área = Lado * Lado

  4. Faça um algoritmo para calcular a área de N Círculos. Fórmula : Área = π raio 2 π = 3,141592.

  5. Fazer um algoritmo que calcule escreva a soma dos 50 primeiros termos das seguinte série:

Estrutura de repetição REPITA-ATÉ ( Repeat Until)

ALGORITMO

REPITA

ATE <Condição for verdadeira>

PASCAL

REPEAT

UNTIL <Condição for verdadeira>

Exemplo : Faça um ALGORITMO para ler e escrever o Nome de 20 pessoas.

ALGORITMO LeEscreve

VARIÁVEIS

Nome : CADEIA

Total : INTEIRO

INICIO

Total ¬ 0

REPITA

LEIA(Nome)

ESCREVA(‘Nome=‘,Nome)

Total ¬ Total + 1

ATÉ Total >= 20

FIM

Em pascal:

PROGRAM LeEscreve;

VAR

Nome : STRING;

Total : INTEIRO;

BEGIN

Total : = 0 ;

REPEAT

READ(Nome);

WRITE(‘Nome=‘,Nome);

Total : = Total + 1 ;

UNTIL Total >= 20 ;

END.

Exercícios 4:

  1. Leia 20 valores reais e escreva o seu somatório.

  2. Dado uma frase de exatamente 80 caracteres, escreva a frase de trás para frente, um caracter por linha.

  3. Dado um número indeterminado de funcionários, onde é fornecido o Nome, número de dependentes e o número de horas trabalhadas. Pede-se que seja impresso, para cada funcionário, o seu Nome, salário bruto, salário líquido e o valor descontado. A empresa, paga R$ 2.250,00 por hora de trabalho, e R$ 125,55 por dependente, e ainda faz um desconto de 12% sobre o salário bruto. Pede-se ainda que seja impresso o total de funcionários da empresa, o total gasto com salários, e o total descontado.

  4. Faça um ALGORITMO para: a) Leia um valor X e um valor N. b) Calcular: Y = X - 2X + 4X - 6X + 8X - 10X + … NX.