Академический Документы
Профессиональный Документы
Культура Документы
O que é a programação?
Algoritmo
O que é um algoritmo?
O que é um programa?
Características de um algoritmo
Técnicas de representação
Exercício
Passos para a implementação de um programa
Linguagem de programação
Estrutura de um programa
Tipos de dados
Variáveis
Constantes
Funções Entrada/Saída
Programação I 1
O que é a programação?
Programação I 2
O que é um algoritmo?
É uma sequência ordenada e precisa de passos, acções ou instruções, que conduzem
à solução do problema dado.
Exemplos (dia-a-dia):
Receita de culinária
Mudar um pneu do carro
Instalar um jogo/programa no computador
Efectuar a matrícula numa escola (por exemplo na ESTG-Leiria)
…
Outros exemplos :
Calcular a soma de dois números
Calcular a nota obtida por um aluno numa UC em função das notas obtidas na componente prática e na
componente teórica da UC
Determinar a nota máxima obtida numa UC e indicar o aluno ou alunos que a obtiveram
Gerir a informação dos alunos da ESTG e dos seus resultados de avaliação
…
Programação I 3
O que é um programa?
Programação I 4
Características de um Algoritmo
Genérico
Programação I 5
Técnicas de Representação do
Algoritmo
Pseudocódigo usadas na UC
Fluxogramas
Tabelas de decisão
Quadros estruturados
.....
Programação I 6
Pseudocódigo
Muito aproximado à linguagem humana
Palavras-chave (escritas em maiúsculas):
INÍCIO / FIM
LER / ESCREVER
SE ... ENTÃO ... SENÃO ...
FAZER ... ENQUANTO ...
CASO ……. SEJA …. FAZER ….. [FAZER ….] SENÃO ….
ENQUANTO ... FAZER ...
PARA cada n DE ... ATÉ ... FAZER ...
Programação I 7
Fluxogramas
São diagramas que indicam as operações a realizar e a
respectiva sequência de execução.
Símbolos padrão:
Início/fim
Leitura/escrita
Linhas de fluxo
Decisão
Decisão múltipla
Processamento
Programação I 8
Exercício
Programação I 9
Resolução em Pseudocódigo
INICIO
ESCREVER “Indique um número:”
LER numero1
ESCREVER “Indique um número:”
LER numero2
resultado=numero1+numero2
ESCREVER resultado
FIM
Programação I 10
Resolução em Fluxograma
Programação I 11
Exercício
Peso Mínimo
Trabalho Prático 50% 10,0
Frequência 50% 8,0
Elabore o algoritmo usando as duas técnicas de representação
estudadas.
Programação I 12
Resolução em Pseudocódigo
INÍCIO
ESCREVER “Indique as notas do trabalho e da frequência:”
LER nota_trab
LER nota_freq
SE nota_trab < 10,0 OU nota_freq < 8,0 ENTÃO
ESCREVER “Não atingiu os mínimos”
SENÃO
nota_final = nota_trab * 0,5 + nota_freq * 0,5
ESCREVER nota_final
FIM
Programação I 13
Resolução em Fluxograma
Programação I 14
Passos para a implementação de
um programa
1. Edição do código fonte
escrita do algoritmo usando uma linguagem de programação
(linguagem C)
2. Compilação do programa
detecção de erros de sintaxe
o compilador cria um ficheiro com extensão .obj
3. Linkagem
criação do ficheiro executável (.exe)
linkagem do ficheiro .obj + livrarias usadas
4. Execução do programa
Programação I 15
Implementação
#include <stdio.h>
#include <conio.h>
void main(void){
float nota_trab, nota_freq, nota_final; /* Declaração de variáveis */
Programação I 16
Linguagem de Programação
Programação I 17
Estrutura de um Programa
1. Definições de pré-processamento
Exemplo: #include <stdio.h>
Nestes dois pontos não se coloca
o ; no final.
2. Definição de constantes
Exemplo: #define PI 3.14
Programação I 19
Identificador
Identificador – nome dado pelo programador a uma variável, a
uma constante, a uma função.
Pode conter letras, números e o carácter underscore ( _ );
Não pode começar por um número;
Não pode ter espaços em branco;
Não pode conter acentuação (à, á, ã, ê, ç,...);
Faz distinção entre maiúsculas e minúsculas;
Não pode representar uma palavra reservada do C (exemplo: main,
break, if, case, ....);
Dentro de uma mesma função não podem ser declaradas duas
variáveis com o mesmo nome. Em funções diferentes isso pode
acontecer sem qualquer conflito;
É aconselhado dar nomes sugestivos.
Programação I 20
Variáveis
Exemplo2:
#define PI 3.1415
perimetro = 2 * PI * raio;
.......
}
Programação I 25
Tipos de Dados
Programação I 26
char
Programação I 27
Caracteres Especiais
Programação I 28
Qualificadores de tamanho e
Qualificadores de sinal
Programação I 29
Qualificadores de tamanho
Programação I 30
Qualificadores de sinal
Programação I 31
int e variações do tipo int
Representa um número inteiro.
Tipo Descrição Exemplo
int inteiro
short int inteiro pequeno Idade: 21
long int inteiro grande BI: 123456789
signed int inteiro com sinal Temperatura: -1ºC
unsigned int inteiro sem sinal Nota: 20 valores
Programação I 33
int e variações do tipo int
(compiladores Dev C++, Code Blocks)
Programação I 34
float & double
Programação I 35
float & double
Programação I 36
float & double
(compilador Dev C++, Code Blocks)
Programação I 37
Operadores aritméticos
% (resto da
5%2 1 5.0 % 2.0 ERRO
divisão inteira)
Programação I 38
Operador de atribuição simples
Variável = expressão;
Programação I 39
Atribuição simples
Exemplo 1:
char letra = ‘M’, caracter;
letra = ‘z’; A variável caracter toma o
caracter = letra; valor representado pela variável
letra, ou seja, toma o valor ‘z’.
Exemplo 2:
int valor = 100;
float percentagem = 0.2, total; A variável total toma o valor
resultante da multiplicação entre
total = valor * percentagem; valor e percentagem, ou seja,
Programação I
20.0. 40
Atribuição simples
Exemplo 3:
int num1 = 5, num2 = 2;
float resultado;
A variável resultado toma o valor
2.0. Apesar da variável ser do tipo
resultado = num1 / num2; float recebe apenas o resultado entre
dois inteiros.
Exemplo:
getch() - permite a leitura de um caracter sem o mostrar no
monitor
getche() - permite a leitura de um caracter mostrando-o no
monitor
Programação I 43
Função printf
Tipo Formato
char %c
int %d ou %i
short int %hd
long int %ld
unsigned short int %hu
unsigned int %u
unsigned long int %lu
float %f ou %e ou %E
double %f ou %e ou %E
Programação I 45
Função printf
(escrita formatada)
Exemplo 1 (sem argumentos): Resultado no ecrã:
Computadores
printf(“Computadores\n\te\nProgramação”); e
Programação
Programação I 46
Função printf
Exemplo 3 (com 4 argumentos):
char turno = ‘P’;
int nTurno1=1, nTurno2 = 2;
Resultado no ecrã:
Resultado no ecrã:
5 / 2 = 2.500000
Programação I 48
Formatos de Escrita
Programação I 50
Função scanf
Programação I 51
Função scanf
Programação I 52
Função scanf
Problema do Exemplo 3:
A leitura do teclado é feita usando um buffer (todos os
caracteres são ali guardados até pressionarmos enter).
Solução do Exemplo 3:
Limpar o buffer antes de qualquer leitura. Este processo pode
ser realizado de duas formas:
1. Colocar um espaço em branco antes do %c limpa os caracteres em
branco, \n, \t e \v
fflush(stdin);
scanf(“%c”, &ch2);
Programação I 54
Exemplo
#include <stdio.h>
#include <conio.h>
Programação I 56
Função putchar(variavel)
Exemplo:
char caracter = ‘a’;
putchar(caracter);
Programação I 57
Operadores relacionais
== (igual)
!= (diferente)
> (maior)
>= (maior ou igual)
< (menor)
<= (menor ou igual)
Programação I 58
Operadores lógicos
&& (and)
|| (or)
! (not)
Atenção:
Na linguagem C o valor lógico FALSO é representado por 0.
Qualquer valor diferente de 0 é VERDADE.
Programação I 59
Operador atribuição composta
Atribuição composta:
+=
Exemplos:
-=
+= a+=2; a=a+2;
*=
-= a-=2; a=a-2;
/=
*= a*=2; a=a*2;
%=
/= a/=2; a=a/2;
%= a%=2; a=a%2;
Programação I 60
Operador
incrementação/decrementação
Incrementação
++
Decrementação
--
Programação I 61
Operador
incrementação/decrementação
Programação I 62
Operador
incrementação/decrementação
Operador de incrementação. Exemplo:
i++; ++i; (quando aparece isolado numa expressão)
Programação I 63
Operador
incrementação/decrementação
Exemplo 1:
int x, n=7;
x=++n; /*incrementa o valor de n (que passa a ter o valor 8) e
atribui-o a x (que passa a ter o valor 8)*/
Exemplo 2:
int x, n=7;
x=n++; /*atribui a x o valor de n (x passa a ter o valor 7)
e de seguida incrementa o valor de n (n passa a ter o
valor 8)*/
Programação I 64
Expressão
Programação I 65
Cálculo de expressões
Programação I 66
Prioridade dos operadores
+alta () cálculo de funções
-- ++ !
* / %
+ -
< > <= >=
== !=
&&
||
= += -= /= *= %=
+baixa
+alta Programação I +baixa 67
Prioridade dos operadores
(y – x) / 2 + 100;
Programação I 68
Cálculo de expressões
Programação I 69
Conversão por atribuição
Exemplo1: Exemplo2:
valor1=valor2; valor1=valor2;
Programação I 70
Conversão aritmética
Programação I 71
Regras de conversão nas
expressões (1)
Programação I 72
Regras de conversão nas
expressões (2)
Se um dos operandos é do tipo long double os outros são
convertidos para long double e o resultado da expressão é
long double
Senão
Se um dos operandos é do tipo double os outros são
convertidos para double e o resultado da expressão é double
Senão
Se um dos operandos é do tipo float os outros são convertidos
para float e o resultado da expressão é float
Senão
Programação I 73
Regras de conversão nas
expressões (3)
Se um dos operandos é do tipo unsigned long os outros são convertidos
para unsigned long e o resultado da expressão é unsigned long
Senão
Se um dos operandos é do tipo long os outros são convertidos para long e o
resultado da expressão é long
Senão
Se um dos operandos é do tipo unsigned int os outros são convertidos para
unsigned int e o resultado da expressão é unsigned int
Senão
O resultado da expressão é int
Programação I 74
Operação de casting
Programação I 75
Operação de casting
Exemplo:
int x=5, y=2;
float m;
m= (float) x/y;
Programação I 76