Fundamentos da Programação de Computadores Fábio Botelho [email protected] Segundo...

115
Fundamentos da Programação de Computadores Fábio Botelho [email protected] Segundo Semestre de 2010

Transcript of Fundamentos da Programação de Computadores Fábio Botelho [email protected] Segundo...

Page 1: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Fundamentos da Programação de Computadores

Fábio [email protected]

Segundo Semestre de 2010

Page 2: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo I - Conceitos Básicos

• O homem sempre procurou criar máquinas ou desenvolver técnicas que facilitem a sua vida

• O ápice da criação do homem é o computador• O computador

– é capaz de auxiliar em qualquer coisa que lhe seja solicitada

– Não tem iniciativa, independência, não é criativo nem inteligente

– Precisa receber as instruções nos mínimos detalhes

Page 3: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Processamento de Dados

Informações Iniciais

Operações sobre as

informaçõesResposta+

Dispositivo de Entrada

CPU / Memória

Dispositivo de Saída

Page 4: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Hardware X Software– Hardware é a parte física do computador– Software permite realizar determinado tipo de

processamento de dados para uma finalidade específica

• Quando queremos escrever um software utilizamos uma linguagem de programação para codificar um ou vários componentes

Page 5: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Etapas para o desenvolvimento de um programa

de computador– Análise

• Estuda-se o problema a ser solucionado para definir dados de entrada, processamentos e dados de saída

– Algorítmo• Ferramentas como descrição narrativa, fluxograma ou

português estruturado são utilizadas para uma resolução inicial do problema em um alto nível de abstração

– Codificação• O Algorítmo é transformado em códigos da linguagem de

programação escolhida

Page 6: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Percepção Humana, como os homens percebem e interagem com o mundo real

Algorítmo

Codificação em uma linguagem de programação

Interpretação Tradução / Compilação

Linguagem de Máquina

Hardware / Computador

Código Objeto

Ligador (Linkeditor)

Programa executável

Problemas do mundo

real

Próximo do Computador, como são executadas as instruções de máquina

Intermediário, entre a percepção humana e o modo como o computador executa as instruções

Page 7: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Um Programa é portanto a codificação de um algorítmo em uma determinada linguagem de programação (ASCENCIO, 1999)

Page 8: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Algorítmo– É uma sequência de passos que visa atingir um

objetivo bem definido (FORBELLONE, 1999)– É uma sequência de passos que deve ser seguida

para a realização de uma tarefa (ASCENCIO, 1999)– É uma sequência finita de instruções ou operações

cuja execução, em tempo finito, resolve um problema computacional… (SALVETTI, 1999)

Page 9: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exemplos de Algorítmo usando o método da narração descritiva

1. Somar três númerosPASSO 1 – Ler os três númerosPASSO 2 – Atribuir a soma a uma variável

que armazene o resultado PASSO 3 – Mostrar o resultado

Page 10: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Exemplos de Algorítmo usando o método da

narração descritiva2. Fazer um SanduíchePASSO 1 – Pegar o pãoPASSO 2 – Cortar o pão ao meioPASSO 3 – Passar a maionesePASSO 4 – Por alface e tomatePASSO 5 – Por o amburguer frito no pãoPASSO 6 - Comer

Page 11: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Exemplos de Algorítmo usando o método da narração

descritiva3. Sacar dinheiro no banco 24 horasPASSO 1 – Ir ao bancoPASSO 2 – Colocar o cartãoPASSO 3 – Digitar a senhaPASSO 4 – Solicitar a quantiaPASSO 5 – Se houver saldo suficiente para o saque,

realizar o saque. Caso contrário exibir mensagem saldo insuficiente

PASSO 6 – Retirar o cartãoPASSO 7 – Sair do banco

Page 12: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Método para a Construção de Algorítmos– Ler atentamente o enunciado destacando

pontos mais importantes– Definir os dados de entrada, ou seja, dados

fornecidos– Definir os processamentos necessários para

se obter os dados de saída– Definir os dados de saída– Construir o algorítmo– Testar o algorítmo realizando simulações

Page 13: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Algorítmos– Descrição Narrativa– Fluxograma– Pseudocódigo ou portugol

Page 14: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Algorítmos– Descrição Narrativa

• Analisa-se o enunciado do problema, escrevendo os passos para a solução, utilizando a linguagem natural– Vantagem: não se aprende nenhuma nova linguagem– Desvantagem: às vezes não há um mapemaneto direto

do algorítmo na linguagem de programação

Page 15: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Algorítmos– Fluxograma

• Consiste em analisar o enunciado do problema e escrever utilizando símbolos gráficos predefinidos os passos a serem seguidos para a resolução do problema– Vantagem: O entendimento de elementos gráficos é

mais fácil– Desvantagem: Necessário aprender a simbologia dos

fluxogramas

Page 16: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Algorítmos– Fluxograma

Utilizado para indicar início e fim do algorítmo

Indica o sentido do fluxo de dados

Indica cálculos e atribuições de valores

Representa a entrada de dados

Representa a saída de dados

Indica desvio condicional do fluxo normal de execução

Page 17: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exemplos de Algorítmos– Faça um algorítmo para mostrar o resultado

da multiplicação de dois números• Descrição narrativa:

PASSO 1 – Ler os dois números que serão multiplicadosPASSO 2 – Multiplicar os númerosPASSO 3 – Mostrar o resultado obtido na multiplicação

Page 18: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exemplos de Algorítmos– Faça um algorítmo para mostrar o resultado

da multiplicação de dois números• Fluxograma

Início N1, N2

M=N1 * N2

M Fim

Page 19: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exemplos de Algorítmos– Faça um algorítmo para mostrar o resultado da

multiplicação de dois números• Pseudocódigo (Portugol)ALGORÍTMO

DECLARE N1,N2,M NUMERICOESCREVA “Digite dois números “LEIA N1, N2M N1 * N2ESCREVA “Multiplicação = “, M

FIM ALGORÍTMO

Page 20: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Exemplos de Algorítmos

– Faça um algorítmo para mostrar o resultado da multiplicação de dois números

• Implementação na Linguagem de Programação Pascalprogram fape (input,output); var n1,n2,m:integer;begin write('ENTRE COM DOIS NUMEROS: '); read(n1,n2); m:=n1*n2; writeln; writeln('A multiplicacao e:',m); read(n1);end.

Page 21: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Exemplos de Algorítmos

– Faça um algorítmo para mostrar o resultado da multiplicação de dois números– Implementação na Linguagem de Programação C#

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleMultiplicacao{ class Multiplicacao { static void Main(string[] args) { string literalN1, // primeira string literalN2; // segunda string int n1, // primeiro número n2, // segundo número m; // soma de n1 com n2 // lê o primeiro número como uma string Console.Write("Entre com um número inteiro: "); literalN1 = Console.ReadLine(); // lê o segundo número como string Console.Write("\nEntre com o segundo número inteiro: "); literalN2 = Console.ReadLine(); // Converte números de string para inteiro n1 = Int32.Parse(literalN1); n2 = Int32.Parse(literalN2); // multiplica os dois números n1 e n2 e atribui o resultado a m m = n1 * n2; // mostra o resultado Console.WriteLine("\nA multiplicação é {0}.", m); } }}

Page 22: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Exemplos de Algorítmos

– Faça um algorítmo para mostrar o resultado da multiplicação de dois números– Implementação na Linguagem de Programação C# com Formulário

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void label1_Click(object sender, EventArgs e) {

}

private void r_TextChanged(object sender, EventArgs e) { }

private void button1_Click(object sender, EventArgs e) { double res = Double.Parse(a.Text.ToString()) * Double.Parse(b.Text.ToString()); r.Text = res.ToString(); } }}

Page 23: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exercício – Faça um algorítmo para descrever como é o sistema de avaliação da FAPE. Utilize Descrição Narrativa, Fluxograma e Pseudocódigo

Page 24: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exercício - Utilize Descrição Narrativa, Fluxograma e Pseudocódigo para as seguintes questões:

– Faça um algorítmo para mostrar o resultado da divisão de dois números.

– Faça um algorítmo para calcular a média aritmética entre duas notas de um aluno e mostrar o resultado aprovado ou reprovado

Page 25: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Exercício - Utilize Descrição Narrativa, Fluxograma e Pseudocódigo para as seguintes questões:

– Faça um algorítmo para calcular o novo salário de um funcionário. Aqueles que ganham até R$ 500,00 deverão ter aumento de 20%. Os demais, apenas 10%

Page 26: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Variável– Um algorítmo, e posteriormente um

programa, recebe dados. Tais dados precisam ser armazenados no computador para serem utilizados no processamento. Esse armazenamento é feito na memória

Page 27: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Variável– O armazenamento do valor associado a

uma variável em memória dá-se no sistema de notação binária, ao invés do decimal com o qual estamos acostumados a trabalhar

– 1 bit representa 0 ou 1– 1 byte é igual a 1 x 8 = 8 bits– Os valores associados a variáveis são

armazenados na memória, representados por bits

Page 28: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Variável– Existe uma tabela denominada tabela ASCII

que associa números binários aos caracteres alfanuméricos

– Ex.: Código ASCII de número 158 representa a letra x, 159 representa a letra y

– Ex.: É representado em binário por:– ASCII (158) x 10011110– ASCII (159) y 10011111

Page 29: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Variável– O valor armazenado na memória do

computador está no formato binário– O processo de conversão do decimal para o

binário se dá de forma bem simples pela divisão do número por 2, sendo o número binário formado pelos restos do processo de divisão

Page 30: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Conceito de Variável

– O processo de conversão do binário para o decimal se dá de forma da seguinte forma:

27 26 25 24 23 22 21 20

x x x x x x x x

Binário: 1 0 0 1 1 1 1 0 128 16 8 4 2 somados dá 158

ASCII de 158 corresponde a letra x e é representado por 10011110 sendo desta forma armazenado na memória do computador

Page 31: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Conceito de Variável– x := 10– Atribui o valor 10 à variável x– nome := ‘Maria’– Atribui o valor alfanumérico Maria à variável

nome

Page 32: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Dados– Numérico– Lógico– Literal– Caractere

Page 33: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Tipos de Dados

– Numérico• Dividem-se em dois grupos:

– Inteiros» podem ser positivos ou negativos e não possuem casa decimal» Ocupa dois bytes ( 2 x 8 = 16 bits) de memória» 28 x 28 = 65536 possíveis representações» -32767, -32766, …, 0, …, 32766,32767

– Reais» Podem ser positivos e negativos e possuem parte decimal» Ocupa 4 bytes (4 x 8 = 32 bits)» 28 x 28 x 28 x 28 = 232 possíveis representações» Possui de 6 a 11 dígitos significativos com sinal» Ex: 23,45 ; 346,89 ; -34,88

Page 34: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Dados– Lógico

• Também chamados de dados booleanos. Podem assumir apenas os valores verdadeiro ou falso

• Ocupa 1 byte (1 x 8 = 8 bits)

Page 35: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Tipos de Dados– Literal ou Caractere

• Dados formados por um único caractere ou uma cadeia de caracteres.

• São as letras, maiúsculas, minúsculas, números e caracteres especiais &, #, @, ?, +

• Ocupa 1 byte (8 bits) para cada caractere• Exemplos:

‘aluno’‘1234’‘1 + 2’

Page 36: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos• Formação de Identificadores

– São os nomes das variáveis, dos programas, das constantes, das rotinas, etc.

– As regras básicas para a formação de identificadores são:

• Os caracteres que utiliza na formação dos identificadores são: os números, as letras maiúsculas, minúsculas e o caractere sublinhado

• O primeiro caractere deve ser sempre uma letra ou caractere sublinhado ( _ )

• Não são permitidos espaços em branco e caracteres especiais (@,$,+,-,%,!)

• Não podem ser usadas palavras reservadas nos identificadores, ou seja, palavras que pertençam a uma linguagem de programação

Page 37: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Formação de Identificadores– Exemplos válidos:

AAnotaNOTAA32nota1MATRICULA

Page 38: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Formação de Identificadores– Exemplos não válidos e a explicação:

5b … não pode começar com númeroe 12 … não pode ter espaço em brancox-y … não pode ter -nota(2) … não pode ter ( )case … não pode ser uma palavra reservada da

linguagem de programação ( e.g. pascal)set … não pode ser uma palavra reservada

Page 39: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Linguagem Pascal– Desenvolvida em 1968 por Niklaus Wirth, na Suiça,

destinada à programação científica– É uma linguagem estruturada, ou seja, possui

regras para a escrita de programas– Possui um ambiente integrado de desenvolvimento

gráfico ou somente texto que integra:• Editor• Compilador• Depurador

Page 40: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Linguagem Pascal– Para fazer um programa utilizando a

linguagem pascal, deve-se:• Analisar o enunciado do problema, algorítmo• Escrever o código-fonte, respeitando a sintaxe

da linguagem pascal• Compilá-lo• Corrigir erros• Executá-lo quando não houver mais erros

Page 41: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• Linguagem Pascal– Integrated Development Environment (IDE)s

disponíveis• Turbo Pascal (Interface DOS)• FPC – Free Pascal (Interface DOS)• Dev Pascal (Ambiente Gráfico)

Page 42: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Conceitos Básicos

• C, C++, Visual Basic .NET e JAVA

Page 43: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em AlgorítmosALGORITMO

DECLAREbloco de comandos

FIM ALGORÍTMO

Page 44: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em Algorítmos– Declaração de Variáveis

• As Variáveis são declaradas após a palavra DECLARE ou outra que sugira a mesma ação

• Os tipos utilizados podem ser definidos como NUMÉRICO (variáveis que receberão números), LITERAL (receberão caracteres) e LÓGICO (receberão ou Verdadeiro ou Falso)

• Ex.:DECLARE

X numéricoY, Z literalTESTE lógico

Page 45: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em Algorítmos– Comando de Atribuição em Algorítmos

• É utilizado para atribuir valores ou operações a variáveis, sendo representado pelo símbolo ← ou pelo símbolo :=

• Ex.:x ← 4x ← x + 2y ← “aula”teste ← falso

Page 46: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em Algorítmos– Comando de Entrada em Algorítmos

• O comando de entrada é usado para receber os dados digitados pelo usuário

• Os dados recebidos são armazenados em variáveis. Pode-se usar a palavra LEIA

• Ex.: LEIA XLEIA Y

Page 47: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em Algorítmos– Comando de Saída em Algorítmos

• É utilizado para mostrar dados na tela ou na impressora ou outra unidade de saída de dados

• É representado pela palavra ESCREVA e os dados podem ser conteúdos de variáveis ou mensagens

• Ex.:ESCREVA XESCREVA “Conteúdo de Y = “, Y

Page 48: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em PASCALPROGRAM nome;USES nomes das unidades;VAR nome das variáveis : tipo;BEGIN

bloco de comandos;END

Page 49: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Estrutura Sequencial em PASCAL– As unidades são biblitecas utilizadas pela

linguagem Pascal para a correta execução do programa.

– A unidade CRT é obrigatória em todos os programas, pois faz a adequação do hardware com o programa.

Page 50: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em Pascal– As variáveis são declaradas após a palavra

VAR– Os tipos mais utilizados são:

• INTEGER (números inteiros)• REAL (números reais)• CHAR (caracteres)• STRING (vários caracteres)• BOOLEAN (verdadeiro ou falso)

Page 51: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em PascalVar

X : INTEGER;Y,Z : REAL;NOME : STRING;SEXO : CHAR;TESTE : BOOLEAN;

Page 52: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Declaração de Variáveis em Pascal

– Os identificadores são os nomes das variáveis, dos programas, das constantes, das rotinas e unidades, entre outras

– As regras básicas para a formação de identificadores:• Podem ter qualquer tamanho. O compilador usará apenas os 63

primeiros caracteres• Os caracteres que você pode utilizar na formação dos

identificadores são os números, as letras maiúsculas e minúsculas e o caractere sublinhado

• O compilador não faz distinção entre maiúsculas e minúsculas, assim o identificador NUM é igual a num

• O primeiro caractere deve ser sempre uma letra ou o sublinhado• Não são permitidos espaços em branco e caracteres especiais

(@, $, +, -, %, !)• Não é permitido usar palavras reservadas

Page 53: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Palavras Reservadas em Pascal

– São os nomes utilizados pelo compilador para representar comandos, operadores e nomes de seções de programa. Na linguagem Pascal são:

AND END NIL SHR

ASM FILE NOT STRING

ARRAY FOR OBJECT THEN

BEGIN FUNCTION OF TO

CASE GOTO OR TYPE

CONST IF PACKED UNITCONSTRUCTOR IMPLEMENTATION PROCEDURE UNTILDESTRUCTOR IN PROGRAM USES

DIV INLINE RECORD VAR

DO INTERFACE

REPEAT

WHILE

DOWNTO

LABEL SET WITH

ELSE MOD SHL XOR

Page 54: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Palavras Reservadas

– Os tipos de dados mais utilizados na linguagem PASCAL estão descritos na tabela a seguir:

TIPO REPRESENTAÇÃO FAIXA TAMANHO

shortint Numérico inteiro -128 a 127 1 byte

integer Numérico inteiro -32.768 a 32.767 2 bytes

logint Numérico inteiro -2.147.483.648 a 2.147.483.647 4 bytes

byte Numérico inteiro 0 a 255 1 byte

word Numérico inteiro 0 a 65.535 2 bytes

real Numérico real 2,9 x 10-39 a 1,7 x 1038 (11 a 12 dígitos com sinal)

6 bytes

single Numérico real 1,5 x 10-45 a 3,4 x 1038 (7 a 8 dígitos com sinal)

4 bytes

double Numérico real 5 x 10-324 a 1,7 x 10308 (15 a 16 dígitos com sinal)

8 bytes

extended Numérico real 10 bytes

comp Numérico real 8 bytes

boolean lógico True ou false 1 byte

char 1 caractere Qualquer caractere 1 byte

string Cadeia de caracteres Qualquer conjunto de caracteres 1 byte para cada caractere

Page 55: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Comando de Atribuição em Pascal

– O comando de atribuição é usado para atribuir valores ou operações a variáveis, sendo representado por := (sinal de dois pontos e o sinal de igual juntos, sem espaço)

– Ex.:x := 4;x := x + 2;y := 2.5;nome := ‘Aula’;sexo := ‘F’;teste := false;

Page 56: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Comando de Atribuição em Pascal

– Em pascal, os caracteres literais são representados entre apóstrofos simples e os números reais utilizam o ponto decimal como separador

– Em pascal, o ponto e vírgula (;) é utilizado para finalizar um comando

Page 57: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Comando de Entrada em Pascal

– É utilizado para receber dados digitados pelo usuário

– Os dados recebidos são armazenados em variáveis

– Representado pela palavra READ ou READLN– Sintaxe:

• readln(nome_da_variavel);• readln(nome_da_variavel1, nome_da_variavel2);

– Ex:• readln(x);• readln(x,y);

Page 58: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Comando de Saída em Pascal

– É utilizado para mostrar dados na tela ou na impressora– É representado pela palavra WRITE ou WRITELN– Sintaxe:

• write(nome_da_variavel);• writeln(nome_da_variavel);• write (‘Mensagem’);• writeln(‘Mensagem’);

– Ex:• write(x);• writeln(‘O numero e: ‘, x);

Page 59: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Comentários em Pascal

– Não são interpretados pelo Compilador– Servem apenas para explicar algo a respeito da

codificação de um programa de computador– Usa-se:

{…….}

– Ou(* ……… *)

Page 60: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em Pascal

Operandos Resultado

+ Soma Z ou R Z ou R- Subtração Z ou R Z ou R* Multiplicação Z ou R Z ou R/ Divisão Z ou R Rdiv Quociente inteiro Z Zmod resto da divisão Z Z

Page 61: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em

Pascal

| x | Z ou R Z ou R ABS(X)ex Z ou R Z ou R EXP(X)

Page 62: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Estrutura Sequencial em C#

1. O ponto inicial de execução do programa é o método main pertencente à classe a partir da qual todas as funcionalidades da aplicação estarão acessíveis

2. Um programa executará a partir do método main, instrução após instrução do início ao fim

3. Ao encontrar um desvio condicional uma ou outra parte do programa será executada, de acordo com a condição dada

4. Ao encontrar uma estrutura de repetição, parte do programa será executado repetidamente enquanto uma condição dada for satisfeita

5. O ponto de execução do programa pode ser desviado a um método na mesma classe. Dentro do método são válidas as regras 2 a 4 anteriores

6. O ponto de execução do programa pode ser desviado a um objeto instanciado de uma classe, onde são válidas as regras 2 a 5

Page 63: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#

Page 64: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#

Page 65: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#

Page 66: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#

Page 67: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em C#– As variáveis são declaradas no corpo do

programa, como variáveis da classe (propriedades), como parâmetros repassados a funções da classe (métodos) ou no corpo de métodos

– Declara-se uma variável informando o seu tipo antes do nome da variável

– Os tipos mais utilizados são:

Page 68: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em C#– Os tipos mais utilizados são:

Page 69: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em C#– Os tipos mais utilizados são:

Page 70: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Declaração de Variáveis em C#– Os identificadores são os nomes das variáveis, das

classes, das constantes, dos métodos– As regras básicas para a formação de

identificadores:• Não devem ser muito longos pois dificulta o entendimento

e a memorização da finalidade da variável• Os caracteres que você pode utilizar na formação dos

identificadores são os números, as letras maiúsculas e minúsculas e o caractere sublinhado

• O primeiro caractere deve ser sempre uma letra ou o sublinhado

• Não são permitidos espaços em branco e caracteres especiais (@, $, +, -, %, !)

• Não é permitido usar palavras reservadas

Page 71: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Palavras Reservadas em C#– São os nomes utilizados pelo compilador para

representar comandos, operadores e nomes de seções de programa. Na linguagem C# são:

Page 72: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Palavras Reservadas em C#– São os nomes utilizados pelo compilador para

representar comandos, operadores e nomes de seções de programa. Na linguagem C# são:

Page 73: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Exercício

Após a elaboração do algorítmo em Português Estruturado e em Fluxograma, implemente em C# um programa para entrar com o valor da temperatura em celsius e convertê-la para fahrenheit.

Em seguida, faça o mesmo para entrar com os valores em fahrenheit e convertê-lo para celsius.

Page 74: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencial

• Exercício

Use as fórmulas:

grau Celsius - grau Fahrenheit °F = °C × 1,8 + 32 grau Fahrenheit - grau Celsius °C = (°F - 32) / 1,8

Page 75: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo II – Estrutura Sequencialusing System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace ConsoleApplication1{ class Program { static void Main(string[] args) { double c, f; Console.Write("Entre com o valor em graus Celsius: "); c = Double.Parse( Console.ReadLine() ); /* f = (c * 1.8) + 32; */ f = CalculaFarenheit(c); Console.Write("O valor em graus Farenheit é: " ); Console.WriteLine(f); Console.ReadKey(); } static double CalculaFarenheit( double celsius ) { double farenheit = celsius * 1.8 + 32; return farenheit; } }}

Page 76: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional em Algorítmos

– Estrutura Condicional SimplesSe condiçãoEntão comando

– A condição possui apenas dois valores possíveis: verdadeiro ou falso

– O comando só será executado caso a condição seja verdadeira

– O comando pode ser composto formando um bloco de comandos, neste caso o conjunto de comandos é posto entre as palavras início e fim

Page 77: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional em Algorítmos

– Estrutura Condicional SimplesSe condiçãoEntão

início comando1;comando2;comando3;

fim

Page 78: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional em Pascal

– Estrutura Condicional Simples em Pascalif condiçãothen

begincomando1;comando2;comando3;

end;

Page 79: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional em C#

– Estrutura Condicional Simples em C#if ( condição )

comando;Exemplo:if ( notaAluno >= 7 )

Console.WriteLine( “Aprovado!" );

if ( condição ) { // bloco de comandoscomando1;comando2;comando3;

}Exemplo:if ( notaAluno >= 7 ) {

Console.WriteLine( “################" );Console.WriteLine( “Aprovado!" );Console.WriteLine( “################" );}

Page 80: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional Composta em Algorítmos

– Estrutura Condicional CompostaSe condiçãoEntão

início comando1;comando2;comando3;

fimSenão

iníciocomando1;comando2;comando3;

fim

Page 81: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional Composta em PASCAL

– Estrutura Condicional CompostaIf condiçãothen

begincomando1;comando2;comando3;

endelse

begincomando1;comando2;comando3;

end;

Page 82: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional Composta em C#

– Estrutura Condicional CompostaIf ( condição )

comando1;else

comando2;Exemplo:if ( notaAluno >= 7 )

Console.WriteLine( “Aprovado!" );

elseConsole.WriteLine( “Reprovado!" );

Page 83: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional Composta em C#

if ( condição ) { // bloco de comandoscomando1;comando2;comando3;comandoN;

}Else {

comando1comando2;comando3;comandoN;

}Exemplo:if ( notaAluno >= 7 ) { // bloco de comandos

Console.WriteLine( “######################" );Console.WriteLine( “Aprovado!" );Console.WriteLine( “######################" );

}else { //bloco de comandos

Console.WriteLine( “######################" );Console.WriteLine( “Reprovado!" );Console.WriteLine( “######################" );

}

Page 84: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Condicional Composta em C#

– Estrutura Condicional CompostaO operador condicional (?:) está relacionado à estrutura de

seleção if/elseExemplo:Console.WriteLine( studentGrade >= 7 ? “Aprovado!" :

“Reprovado!" );

Page 85: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Portugol para a Estrutura Switch CASE (Seleção

Múltipla)Selector tem que ser do tipo charcaso selector igual a

‘1’: comando; // comando simples‘2’: início // bloco de comandos

comando1;comando2;comando3;

fim // final do bloco de comandos para a opção 2

Fim seleção multipla

Page 86: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Estrutura Switch CASE em C#

Selector tem que ser do tipo char…

Console.Write( “Entre com uma letra de A a F: " );grade = Char.Parse( Console.ReadLine() );switch ( grade ){case 'A': // grade is uppercase Acase 'a': // or lowercase a++aCount;break;case 'B': // grade is uppercase Bcase 'b': // or lowercase b++bCount;break;case 'C': // grade is uppercase Ccase 'c': // or lowercase c++cCount;break;case 'D': // grade is uppercase Dcase 'd': // or lowercase d++dCount;break;case 'F': // grade is uppercase Fcase 'f': // or lowercase f++fCount;break;default: // processes all other charactersConsole.WriteLine(“Letra incorreta.""\nEntre com uma nova letra!" );break;}

Page 87: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicional• Implemente uma calculadora para fazer as

operações básicas com dois números• Implemente um programa em C# para entrar com as

letras de A até F. O programa deverá repetir enquanto não for digitada a letra “S” ou “s”. A cada laço, deverá ser incrementado em 1 a variável utilizada para contabilizar a opção escolhida na iteração. Ao final, deverá ser mostrado na tela a quantidade de vezes em que se escolheu as letras “A”, “B”, “C”, “D”, “E” e “F”. Também deverá ser mostrada a quantidade de vezes em que se escolheu uma letra diferente.

Page 88: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura Condicionalprogram calculadora;uses crt;

var opcao:char;

begin repeat clrscr; readln(opcao); case opcao of '1': begin writeln('Soma'); end; 'f': writeln('Fim'); end; delay(2000); until(opcao='f');

end.

Page 89: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalOperadores Lógicos

Tabela E Tabela OU Tabela Não

V e V = V V ou V = V Não V = F

V e F = F V ou F = V Não F = V

F e V = F F ou V = V

F e F = F F ou F = F

Page 90: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalEx Operadores Lógicos em PASCAL

IF (X > 5) AND (X < 10)Then writeln (‘Número entre 5 e 10’)

Ex Operadores Lógicos em C&&, || e ! Significam respect E, OU, NÃO

If ((X > 5) && (X < 10))cout << “Número entre 5 e 10”

Page 91: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Para as questões a seguir, descreva o algorítmo e em

seguida implemente em C#- Mostre o maior de dois números lidos- Receba três números do teclado e os mostre em

ordem crescente- Receba um número inteiro e diga se é PAR ou

IMPAR- Mostre o Menu de opções a seguir e realize as

operações:Menu de opções1. Somar dois números2. Calcule a raiz quadrada de um número

Page 92: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Para as questões a seguir, descreva o algorítmo e

em seguida implemente em C#- Mostre a data e a hora do sistema nos seguintes

formatos: dia/mês/ano e hora:minuto:segundo- Altere a questão anterior para escrever o mês por

extenso- Determine e mostre a maior de duas datas lidas.

Leia dia, mês e ano inteiros para cada data a ser comparada

Page 93: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Para as questões a seguir, descreva o algorítmo e em seguida

implemente em C#- Faça um programa que leia a hora e minutos iniciais de um jogo; a

hora e minutos finais de um jogo e em seguida mostre a duração do jogo

- Faça um programa que receba o código correspondente ao cargo de um funcionário e seu salário atual e mostre o cargo, o valor do aumento e seu novo salário, conforme a tabela a seguir:

- Código Cargo Percentual de aumento- 1 escriturario 50%- 2 secretário 35%- 3 caixa 20%- 4 gerente 10%- 5 diretor sem aumento

Page 94: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Para as questões a seguir, descreva o algorítmo e

em seguida implemente em C#- Faça um programa que apresente o menu de

opções a seguir, permita ao usuário escolher a opção desejada, receba os dados necessários e mostre o resultado

- Menu de opções:- 1. Imposto- 2. Novo Salário- 3. Classificação

Page 95: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Na opção 1: receber o salário de um

funcionário, calcular e mostrar o valor do imposto usando as regras:

- Salários Percentual do Imposto- < R$ 500,00 5%- >= 500 <= 850 10%- > 850 15%

Page 96: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Na opção 2: receber o salário de um

funcionário, calcular e mostrar o valor do novo salário usando as regras:

- Salários Aumento- > R$ 1.500,00 R$ 25,00- >= 750 <= 1500 50,00- < 450 100,00

Page 97: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo III – Estrutura CondicionalExercícios:- Na opção 3: receber o salário de um

funcionário e mostrar sua classificação usando a tabela a seguir:

- Salários Classificação- <= R$ 700,00 Mal remunerado- > 700,00 Bem remunerado

Page 98: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido de

repetições (estrutura para)– É usada quando se sabe o número de vezes em que um

trecho de algorítmo é repetido.

PARA I <- valor_inicial ATÉ valor_final FAÇAcomando1

O comando1 será executado utilizando a variável I como controle, cujo conteúdo irá variar de valor_inicial até valor_final

O incremento a cada laço é de um em um. Ou seja, o valor de I é acrescido de 1 a cada repetição na estrutura

Page 99: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido

de repetições (estrutura para) em Portugol

PARA J <- valor_inicial ATÉ valor_final FAÇAINÍCIO

comando1comando2

FIMOs comandos 1 e 2 serão executados utilizando a

variável J como controle, cujo conteúdo vai variar de valor_inicial até valor_final

Page 100: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido

de repetições (estrutura para) em Fluxograma

Page 101: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido

de repetições (estrutura for) em C#

for ( int counter = 1; counter <= 5; counter++ )

Palavra reservada for

Nome da variável de controle

Valor inicial da variável de controle

Condição de Permanência no laço

Incremento davariável de controleEm cada laço

Último valor davariável de controle

Page 102: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido de

repetições (estrutura for) em C#

using System;class ForCounter{

static void Main( string[] args ){// inicialização, condição de repetição e incremento// estão inclusas na estrutura de repetição forfor ( int counter = 1; counter <= 5; counter++ )

Console.WriteLine( counter );}

}

Page 103: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número

indefinido de repetições e teste no início (estrutura enquanto)

– É utilizada quando não se sabe o número de vezes em que um trecho de algorítmo é repetido, embora também possa ser utilizado quando se sabe esse número

– Existem situações em que o teste condicional da estrutura de repetição, que fica no início, resulta em falso na primeira comparação. Neste caso os comandos dentro da estrutura não são executados

Page 104: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição demonstrada em um

fluxograma

Page 105: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número

indefinido de repetições e teste no início (estrutura enquanto)

ENQUANTO condição FAÇAComando1

Enquanto a condição for Verdadeira o comando1 será executado

Page 106: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número indefinido de

repetições e teste no início (estrutura enquanto)Exemplo:int produto = 2;while ( produto <= 1000 ) produto = 2 * produto;

Console.WriteLine( “O produto final é: “ + produto );

Enquanto a condição for Verdadeira o comando1 será executado

Page 107: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número

indefinido de repetições e teste no início (estrutura enquanto)

ENQUANTO condição FAÇAINÍCIO

comando1comando2comando3

FIMEnquanto a condição for Verdadeira o comando1,

comando2 e comando3 serão executados

Page 108: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número indefinido de

repetições e teste no início (estrutura enquanto)Exemplo:int produto = 2;int laco = 0;while ( produto <= 1000 ) { // bloco de comandos

laco = laco + 1;Console.WriteLine( “No laço “ + laco + “ O produto é: “ + produto);produto = 2 * produto;

}Console.WriteLine( “O produto final é: “ + produto );

Page 109: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número indefinido de

repetições e teste no início (estrutura enquanto)Exercício: Faça um algorítmo para ler as notas dos alunos de uma

turma com um número qualquer de alunos. Contabilize a quantidade de alunos que tiveram nota >=5 e <7 em um grupo; os alunos que tiveram nota < 5 em outro grupo; os alunos que tiveram nota >=7 e <8 em outro grupo; por fim os alunos com nota >= 8 em outro grupo. Ao final da execução do algorítmo, mostre a quantidade de alunos em cada grupo e o percentual da turma em cada grupo.

Page 110: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.2 Estrutura de Repetição para número indefinido de

repetições e teste no início (estrutura enquanto)Ex.: X <- 1Y <- 5ENQUANTO X < Y FAÇAINÍCIO

X <- X + 2Y <- Y + 1

FIM

Page 111: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.3 Estrutura de Repetição para número

indefinido de repetições e teste no final (estrutura repeat until ou do … while)

– É usada quando não se sabe o número de vezes em que um trecho do algorítmo deve ser repetido, embora também possa ser utilizada quando se sabe o número

– Os comandos dentro da estrutura (laço) serão executados pelo menos uma vez, já que a condição se encontra no final

Page 112: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.3 Estrutura de Repetição para número indefinido

de repetições e teste no final (estrutura repeat until ou do … while)

REPITAcomandos

ATÉ condição

Repita os comandos até a condição tornar-se Verdadeira

Page 113: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.3 Estrutura de Repetição para número indefinido

de repetições e teste no final (estrutura repeat until ou do … while)

X <- 1Y <- 5REPITA

X <- X + 2Y <- Y + 2

ATÉ X >= Y

Page 114: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.3 Estrutura de Repetição para número indefinido

de repetições e teste no final (estrutura repeat until ou do … while)

FAÇAcomandos

ENQUANTO condição

Repita os comandos até a condição for Verdadeira

Page 115: Fundamentos da Programação de Computadores Fábio Botelho botelho.fabio@hotmail.com Segundo Semestre de 2010.

Módulo IV – Estrutura de Repetição4.3 Estrutura de Repetição para número

indefinido de repetições e teste no final (estrutura do … while) em C#

using System;class DoWhileLoop{

static void Main( string[] args ){

int counter = 1;do{

Console.WriteLine( counter );counter++;

} while ( counter <= 5 );} // Fim do método Main

} // Fim da Classe DoWhileLoop