2 Programao de Computadores
Prof. Max Arruda Diniz Filho
Programao
De
Computadores
Pgina |1
Pgina |2
Lgica de Programao
O que lgica?
O que um Algoritmo ?
Sequncia de passos que levam a execuo de uma tarefa.
Pgina |3
Portugol
A maioria esmagadora das linguagens de programao de computadores em
lngua inglesa. Para facilitar o aprendizado de lgica de programao foram criadas
algumas pseudolinguagens.
O Portugol uma pseudolinguagem de programao, uma simbiose de Portugus,
Algol e Pascal, criada originalmente em ingls, com a proposta de ser independente da
linguagem nativa (ou seja, existe em japons, javans, russo...).
Basicamente, uma notao para algoritmos, a ser utilizada na definio,
criao, desenvolvimento e documentao dos programas.
Algumas Palavras Chave
Inicio, Fim, Algoritmo, Enquanto, Se, ento, Para, At, At que, Leia,
Escreva, Faa, Repita, FimSe, FimEnquanto, FimSelecione, entre outras que
veremos adiante.
Regras para construo do Algoritmo
Para escrever um algoritmo precisamos descrever a seqncia de instrues, de
maneira simples e objetiva. Para isso utilizaremos algumas tcnicas:
1. Usar somente um verbo por frase
2. Imaginar que voc est desenvolvendo um algoritmo para pessoas que no
trabalham com informtica
3. Usar frases curtas e simples
4. Ser objetivo
5. Evite usar palavras que tenham sentido dbio
6. Procure dividir o problema em etapas menores.
Fases Fundamentais
Vimos que ALGORITMO uma seqncia lgica de instrues que podem ser
executadas.
importante ressaltar que qualquer tarefa que siga comportamento padro pode
ser descrita por um algoritmo.
Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema
apresentado em trs fases fundamentais...
Entrada
Processamento
Sada
ENTRADA:
So os dados de entrada do algoritmo
PROCESSAMENTO: Procedimentos utilizados para chegar ao resultado final
SADA:
So os dados j processados
Pgina |4
Exemplos de Algoritmo
1) Imagine o seguinte problema: Calcular a mdia final dos alunos. Pelas provas
os alunos recebero 2 notas: N1, N2. Onde:
N1 + N2
Mdia Final =
-------------------2
Para montar o algoritmo proposto, faremos trs perguntas:
a) Quais so os dados de entrada?
INICIO do algoritmo
Receba a nota da prova1
Receba a nota de prova2
Some todas as notas e divida o resultado por 2
Mostre o resultado da diviso
FIM do algoritmo
Pgina |5
EXERCCIOS
1)
2)
Faa um algoritmo que calcule o IMC - ndice de massa corprea de uma pessoa,
segundo a frmula:
IMC = peso * altura 2
Classifique-a segundo a tabela:
0
19
25
30
40
IMC
a 19
a 25
a 30
a 40
a acima
Resultado
Muito Magro
Normal
Sobre Peso
Obeso
Obesidade Grave
Pgina |6
Linguagem de Programao C
A linguagem C uma linguagem 3GL (terceira gerao);
uma linguagem com um ncleo muito simples, procedural e com recursos
apoiados em bibliotecas de funes padronizadas;
Possui um sistema simples de tipos, evitando operaes desnecessrias;
Parmetros passados sempre por valor (exceto em vetores simulado atravs de
ponteiros que pode ser passado por referncia);
Estrutura de variveis do tipo struct que permite que dados de tipos diferentes
sejam combinados e manipulados como um registro.
Traduo do cdigo-fonte
Quando o programador escreve um algoritmo ele est criando uma soluo inicial
para o problema proposto pelo usurio. O texto formal o que se chama de cdigofonte, escrito numa linguagem formalizada e dentro dos padres rgidos de programao
(sua sintaxe).
Para que o cdigo-fonte seja processado pelo computador necessrio antes
traduzi-lo em cdigo de maquina.
Interpretao
Nesta forma de traduo feita a leitura, traduo e execuo de cada
linha do programa (cdigo-fonte).
Compilao
Aps verificao e checagem da sintaxe gerado um cdigo em linguagem
de mquina a partir da traduo integral do programa, dando como resultado final
o cdigo executvel que pode ser executado diretamente pelo computador.
Linguagem de
Alto Nvel
Compilador
ng
Executvel
Pgina |7
Ambiente de desenvolvimento em C
A escrita de um programa em C feita num editor de texto puro, no
formatado para evitar a insero de caracteres estranhos no texto.
Dev-C++
um ambiente integrado de desenvolvimento para aplicaes em C e C++
e pode ser baixado no site: http://bloodshed.net/devcpp.html
Possui as seguintes caractersticas:
1.
2.
3.
4.
5.
6.
7.
Pgina |8
2. Selecione:
a.
b.
c.
d.
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Alo Mundo!");
getch();
return 0;
}
Pgina |9
P g i n a | 10
P g i n a | 11
P g i n a | 12
P g i n a | 13
Case sensitive
A linguagem C diferencia as letras maisculas das minsculas: por
exemplo, uma varivel empregada para armazenar a devoluo do imposto de
renda, declarada Devir tratada diferentemente de devIR e de DEVIR.
Exemplo:
a) Int x,y;
O comando Int , juntamente com os seus argumentos x,y compem a
linha de instruo que definem as variveis x,y como do tipo inteiro.
b) R = sqrt(a);
O comando sqrt, com seus argumentos compem a linha de instruo
cujo resultado deve ser atribudo a varivel R.
P g i n a | 14
Comentrios
Os comentrios, antes de servirem apenas para comentar um determinado
trecho do programa, so fundamentais para documentar o cdigo de uma rotina
ou um bloco de instrues.
Para comentar uma linha so usadas duas barras inclinadas // indicando
que tudo que est escrito aps essas duas barras considerado comentrio ( o
compilador ignora).
Para comentar mltiplas linhas pode ser usada um par de barras inclinadas
com asterisco dentro /*....*/.
Usabilidade
Comandos de entrada/sada
Stdlib.h
String.h
Math.h
Conio.h
clculos
Algumas funes
Fprintf(), gets(), scanf(),
printf(), stdin(), stdout().
Abs(),
div(),
rand(),
strtod(), system().
Strllen(),
strupr(),
strlwr(),
strtolower(),
strcmp.
cos(), sin(), tan(), exp(),
log(), sqrt().
Getch(), getchar().
P g i n a | 15
P g i n a | 16
int main()
{
int a = 2, b = 3;
getchar(); //O uso dessa funo necessria apenas nos sistemas Windows,
para manter o terminal (Prompt de comando) aberto
return 0;
}
P g i n a | 17
#include <stdio.h>
struct Pessoa
{
char nome[64]; // vetor de 64 chars para o nome
unsigned short int idade;
char rg[13];
};
int main()
{
struct Pessoa exemplo = {"Fulano", 16, "00.000.000-00"}; // declarao da
varivel "exemplo"
P g i n a | 18
Variveis e Constantes
A linguagem de programao C exige que todas as variveis usadas no
programa sejam previamente definidas: declaradas com seu tipo de dado.
De um modo geral a definio de variveis representada como indicado a
seguir:
tipo identificador = <valor>
Exemplo:
int cont;
int cont =0;
char CliSexo;
char AluMat[10];
De um modo geral a definio de constantes representada como indicado
a seguir:
Const tipo identificador = <valor>
Exemplo:
Const double PI=3,14;
Operadores e Operaes
Operadores so smbolos convencionados que indicam ao compilador o tipo
de operao a ser efetuado.
1.
2.
3.
4.
Operadores
Operadores
Operadores
Operadores
Aritmticos (*, / , % , +, - );
Relacionais ( < , > , <= , >= , != , == );
Lgicos (&& , || , ! );
de incremento/decremento (++ , -- )
Exerccio:
1) Marque com V se a expresso for verdadeira ou com F se for falsa,
considerando os seguintes dados: A=3, B=1, C=2.
(
(
(
(
(
(
(
(
(
(
)
)
)
)
)
)
)
)
)
)
P g i n a | 19
Entradas e Saidas
1. Funo scanf() l dados do teclado;
Sintaxe: scanf(formato, &dados);
Exemplo:
...
Double SalAtu;
Printf (Digite o salrio atual do empregado:);
Scanf(%f, &SalAtu);
Para cada varivel colocada na funo scanf() deve-se informar qual
o formato desejado de entrada.
P g i n a | 20
P g i n a | 21
Estruturas de Deciso
Permite desviar o fluxo do processamento em funo de um teste lgico
feito sobre um condio.
1. Estrutura de Deciso Simples
Neste comando um bloco de instrues s ser executado se a
condio testada for verdadeira. Sua sintaxe a seguinte:
IF (condio)
{
Bloco de instrues
}
2. Estrutura de Deciso Composta
Neste comando um bloco de instrues s ser executado se a
condio testada for verdadeira e se for falsa. Sua sintaxe a
seguinte:
IF (condio)
{
Bloco de instrues1
}
Else
{
Bloco de instrues2
}
Exemplo1: Leia o nome de um aluno e as suas duas notas no
semestre. Calcule sua mdia aritmtica e mostre o nome do aluno
numa linha e sua mdia na outra. E se essa mdia for no mnimo
7.0, escreva em outra linha Aprovado seno escreva Reprovado.
//Exemplo Estrutura de deciso composta
#include<stdio.h>
#include<conio.h>
Int main()
{
float Nota1, Nota2, Media;
char Aluno[30];
printf(Digite o nome do Aluno: );
printf(\n);
printf(Digite a primeira nota: );
scanf(%f, ¬a1);
printf(Digite a segunda nota: );
scanf(%f, ¬a2);
Media = (nota1+nota2)/2;
Printf(\n);
Printf(Aluno: %s \n, Aluno);
Printf(Media: %3.1f \n, Media);
IF (Media >= 7.0)
Printf(Aprovado);
Else
Printf(Reprovado);
Getch();
Return 0;
}
P g i n a | 22
.
.
.
Else IF (num==12) printf (Dezembro);
Else printf (Ms Invalido);
Getch();
Return 0;
Exerccio:
1. Ler um nmero e verificar se par ou impar.
2. Leia o nome e a idade de uma pessoa, e exiba quantos dias de
vida ela possui. Considere sempre anos completos, e que um
ano possui 365 dias.
3. Leia o salrio de um funcionrio e aumente em 15%. Aps o
aumento, desconte 8% de impostos. Exiba o salrio inicial, o
salrio com o aumento e o salrio final.
P g i n a | 23
Estruturas de Repetio
1. Loop lgico com teste no inicio
Sua sintaxe a seguinte:
While (condio)
{
Instruo1
Instruo2
Instruo3
....
Instruon
}
Exemplo1: Crie um programa que some dez primeiros nmeros
pares.
//Exemplo1 estrutura de repetio
#include <stdio.h>
#include <conio.h>
Int main()
{
P g i n a | 24
Obs.:
1. Comando break (abandona o lao mas no o programa);
2. Comando Exit (abandona o programa);
P g i n a | 25
Exercicios: