Fundamentos da Programação
de Computadores
Fábio Botelho
[email protected]
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
Conceitos Básicos
• Processamento de Dados
Informações
Iniciais
Dispositivo
de Entrada
+
Operações
sobre as
informações
Resposta
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
Problemas
do mundo
real
Percepção Humana, como
os homens percebem e
interagem com o mundo
real
Algorítmo
Intermediário, entre a
percepção humana e o
modo como o computador
executa as instruções
Codificação em uma
linguagem de programação
Interpretação
Tradução /
Compilação
Linguagem de
Máquina
Próximo do
Computador,
como são
executadas as
instruções de
máquina
Hardware / Computador
Código Objeto
Ligador
(Linkeditor)
Programa
executável
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úmeros
PASSO 1 – Ler os três números
PASSO 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 descritiva
2. Fazer um Sanduíche
PASSO 1 – Pegar o pão
PASSO 2 – Cortar o pão ao meio
PASSO 3 – Passar a maionese
PASSO 4 – Por alface e tomate
PASSO 5 – Por o amburguer frito no pão
PASSO 6 - Comer
Conceitos Básicos
•
Exemplos de Algorítmo usando o método da narração
descritiva
3. Sacar dinheiro no banco 24 horas
PASSO 1 – Ir ao banco
PASSO 2 – Colocar o cartão
PASSO 3 – Digitar a senha
PASSO 4 – Solicitar a quantia
PASSO 5 – Se houver saldo suficiente para o saque,
realizar o saque. Caso contrário exibir mensagem
saldo insuficiente
PASSO 6 – Retirar o cartão
PASSO 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 multiplicados
PASSO 2 – Multiplicar os números
PASSO 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 NUMERICO
ESCREVA “Digite dois números “
LEIA N1, N2
M N1 * N2
ESCREVA “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 Pascal
program 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:
A
A
nota
NOTA
A32
nota1
MATRICULA
Conceitos Básicos
•
Formação de Identificadores
– Exemplos não válidos e a explicação:
5b … não pode começar com número
e 12 … não pode ter espaço em branco
x-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ítmos
ALGORITMO
DECLARE
bloco 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érico
Y, Z literal
TESTE 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←4
x←x+2
y ← “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 X
LEIA 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 X
ESCREVA “Conteúdo de Y = “, Y
Módulo II – Estrutura Sequencial
•
Estrutura Sequencial em PASCAL
PROGRAM 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 Pascal
Var
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
PACKED
UNIT
CONST IF
CONSTRUCTOR
IMPLEMENTATION
PROCEDURE
UNTIL
DESTRUCTOR
IN
PROGRAM
USES
DIV
INLINE
RECORD
VAR
DO
INTERF REPEA
ACE
T
WHILE
DOWN
TO
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
+
*
/
div
mod
Soma
Subtração
Multiplicação
Divisão
Quociente inteiro
resto da divisão
Operandos
Resultado
Z ou R
Z ou R
Z ou R
Z ou R
Z
Z
Z ou R
Z ou R
Z ou R
R
Z
Z
Módulo II – Estrutura Sequencial
•
|x|
ex
Operadores e Funções predefinidas em
Pascal
Z ou R
Z ou R
Z ou R
Z ou R
ABS(X)
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 Sequencial
using 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 Simples
Se condição
Entã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 Simples
Se condição
Então
início
comando1;
comando2;
comando3;
fim
Módulo III – Estrutura Condicional
•
Estrutura Condicional em Pascal
–
Estrutura Condicional Simples em Pascal
if condição
then
begin
comando1;
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 comandos
comando1;
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 Composta
Se condição
Então
início
comando1;
comando2;
comando3;
fim
Senão
início
comando1;
comando2;
comando3;
fim
Módulo III – Estrutura Condicional
•
Estrutura Condicional Composta em PASCAL
–
Estrutura Condicional Composta
If condição
then
begin
comando1;
comando2;
comando3;
end
else
begin
comando1;
comando2;
comando3;
end;
Módulo III – Estrutura Condicional
•
Estrutura Condicional Composta em C#
–
Estrutura Condicional Composta
If ( condição )
comando1;
else
comando2;
Exemplo:
if ( notaAluno >= 7 )
Console.WriteLine( “Aprovado!" );
else
Console.WriteLine( “Reprovado!" );
Módulo III – Estrutura Condicional
•
Estrutura Condicional Composta em C#
if ( condição ) { // bloco de comandos
comando1;
comando2;
comando3;
comandoN;
}
Else {
comando1
comando2;
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 Composta
O operador condicional (?:) está relacionado à estrutura de
seleção if/else
Exemplo:
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 char
caso 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 A
case 'a': // or lowercase a
++aCount;
break;
case 'B': // grade is uppercase B
case 'b': // or lowercase b
++bCount;
break;
case 'C': // grade is uppercase C
case 'c': // or lowercase c
++cCount;
break;
case 'D': // grade is uppercase D
case 'd': // or lowercase d
++dCount;
break;
case 'F': // grade is uppercase F
case 'f': // or lowercase f
++fCount;
break;
default: // processes all other characters
Console.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 Condicional
program 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 Condicional
Operadores Lógicos
Tabela E
Tabela OU
Tabela Não
VeV=V
V ou V = V
Não V = F
VeF=F
V ou F = V
Não F = V
FeV=F
F ou V = V
FeF=F
F ou F = F
Módulo III – Estrutura Condicional
Ex 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 Condicional
Exercí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ções
1. Somar dois números
2. Calcule a raiz quadrada de um número
Módulo III – Estrutura Condicional
Exercí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 Condicional
Exercí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 Condicional
Exercí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 Condicional
Exercí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 Condicional
Exercí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 Condicional
Exercí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ção
4.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ÇA
comando1
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ção
4.1 Estrutura de Repetição para número definido
de repetições (estrutura para) em Portugol
PARA J <- valor_inicial ATÉ valor_final FAÇA
INÍCIO
comando1
comando2
FIM
Os 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ção
4.1 Estrutura de Repetição para número definido
de repetições (estrutura para) em
Fluxograma
Módulo IV – Estrutura de
Repetição
4.1 Estrutura de Repetição para número definido
de repetições (estrutura for) em C#
Palavra reservada for
Condição de
Permanência no laço
Incremento da
variável de controle
Em cada laço
for ( int counter = 1; counter <= 5; counter++ )
Nome da
variável de controle
Último valor da
variável de controle
Valor inicial da
variável de controle
Módulo IV – Estrutura de
Repetição
4.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 for
for ( int counter = 1; counter <= 5; counter++ )
Console.WriteLine( counter );
}
}
Módulo IV – Estrutura de
Repetição
4.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ção
4.1 Estrutura de Repetição demonstrada em um
fluxograma
Módulo IV – Estrutura de
Repetição
4.2 Estrutura de Repetição para número
indefinido de repetições e teste no início
(estrutura enquanto)
ENQUANTO condição FAÇA
Comando1
Enquanto a condição for Verdadeira o comando1
será executado
Módulo IV – Estrutura de
Repetição
4.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ção
4.2 Estrutura de Repetição para número
indefinido de repetições e teste no início
(estrutura enquanto)
ENQUANTO condição FAÇA
INÍCIO
comando1
comando2
comando3
FIM
Enquanto a condição for Verdadeira o comando1,
comando2 e comando3 serão executados
Módulo IV – Estrutura de
Repetição
4.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ção
4.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ção
4.2 Estrutura de Repetição para número indefinido de
repetições e teste no início (estrutura enquanto)
Ex.:
X <- 1
Y <- 5
ENQUANTO X < Y FAÇA
INÍCIO
X <- X + 2
Y <- Y + 1
FIM
Módulo IV – Estrutura de
Repetição
4.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ção
4.3 Estrutura de Repetição para número indefinido
de repetições e teste no final (estrutura repeat
until ou do … while)
REPITA
comandos
ATÉ condição
Repita os comandos até a condição tornar-se Verdadeira
Módulo IV – Estrutura de
Repetição
4.3 Estrutura de Repetição para número indefinido
de repetições e teste no final (estrutura repeat
until ou do … while)
X <- 1
Y <- 5
REPITA
X <- X + 2
Y <- Y + 2
ATÉ X >= Y
Módulo IV – Estrutura de
Repetição
4.3 Estrutura de Repetição para número indefinido
de repetições e teste no final (estrutura repeat
until ou do … while)
FAÇA
comandos
ENQUANTO condição
Repita os comandos até a condição for Verdadeira
Módulo IV – Estrutura de
Repetição
4.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
Download

Fundamentos da Programação de Computadores