Fundamentos da Programação de Computadores Fábio Botelho [email protected] Segundo...
-
Upload
lorena-nora -
Category
Documents
-
view
216 -
download
0
Transcript of Fundamentos da Programação de Computadores Fábio Botelho [email protected] Segundo...
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
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
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
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
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
Conceitos Básicos
• Um Programa é portanto a codificação de um algorítmo em uma determinada linguagem de programação (ASCENCIO, 1999)
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)
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
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
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
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
Conceitos Básicos
• Tipos de Algorítmos– Descrição Narrativa– Fluxograma– Pseudocódigo ou portugol
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
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
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
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
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
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
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.
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); } }}
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(); } }}
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
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
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%
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
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
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
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
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
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
Conceitos Básicos
• Tipos de Dados– Numérico– Lógico– Literal– Caractere
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
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)
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’
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
Conceitos Básicos
• Formação de Identificadores– Exemplos válidos:
AAnotaNOTAA32nota1MATRICULA
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
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
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
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)
Conceitos Básicos
• C, C++, Visual Basic .NET e JAVA
Módulo II – Estrutura Sequencial
• Estrutura Sequencial em AlgorítmosALGORITMO
DECLAREbloco de comandos
FIM ALGORÍTMO
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
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
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
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
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
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.
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)
Módulo II – Estrutura Sequencial
• Declaração de Variáveis em PascalVar
X : INTEGER;Y,Z : REAL;NOME : STRING;SEXO : CHAR;TESTE : BOOLEAN;
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
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
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
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;
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
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);
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);
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(* ……… *)
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
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)
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
Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#
Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#
Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#
Módulo II – Estrutura Sequencial• Operadores e Funções predefinidas em C#
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:
Módulo II – Estrutura Sequencial
• Declaração de Variáveis em C#– Os tipos mais utilizados são:
Módulo II – Estrutura Sequencial
• Declaração de Variáveis em C#– Os tipos mais utilizados são:
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
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:
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:
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.
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
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; } }}
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
Módulo III – Estrutura Condicional• Estrutura Condicional em Algorítmos
– Estrutura Condicional SimplesSe condiçãoEntão
início comando1;comando2;comando3;
fim
Módulo III – Estrutura Condicional• Estrutura Condicional em Pascal
– Estrutura Condicional Simples em Pascalif condiçãothen
begincomando1;comando2;comando3;
end;
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( “################" );}
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
Módulo III – Estrutura Condicional• Estrutura Condicional Composta em PASCAL
– Estrutura Condicional CompostaIf condiçãothen
begincomando1;comando2;comando3;
endelse
begincomando1;comando2;comando3;
end;
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!" );
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( “######################" );
}
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!" );
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
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;}
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.
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.
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
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”
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
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
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
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
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%
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
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
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
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
Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição para número definido
de repetições (estrutura para) em Fluxograma
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
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 );}
}
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
Módulo IV – Estrutura de Repetição4.1 Estrutura de Repetição demonstrada em um
fluxograma
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
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
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
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 );
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.
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
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
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
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
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
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