Você está na página 1de 104

Disciplina de Programação

UFCD 0782
UFCD 0783
UFCD 0784

2019/2020
Prof Célia
Reis
Disciplina de
Programação
UFCD 0782 - Programação em C/C++ - estrutura básica e conceitos fundamentais
UFCD 0783- Programação em C/C++ - ciclos e decisões
UFCD 0784 - Programação em C/C++ - funções e estruturas

2019/2020
Prof Célia
Reis
Plano anual

Data previsto terminar


UFCD Descrição Horas Segmentos de 50 minutos

Programação em C/C++ - 27/11/2019


0782 estrutura básica e conceitos 50 60
fundamentais
28/02/2020
Programação em C/C++ - ciclos
0783 50 60
e decisões

27/05/2020
Programação em C/C++ -
0784 50 60
funções e estruturas

  Total 150 180  


Conteúdos UFCD 0782

 Estrutura de um programa em C/C+ • Cadeia de carateres e


+
entrada e saída de dados
 Função main ()
formatados
 Estrutura de um programa
– Cadeia de carateres
 Dados em C/C++
– Função Scanf ()
 Variáveis e consoantes
– Códigos de formatação para
 Declaração de variáveis
a função scanf ()
 Tipos de dados
– Códigos de modificação para
 Função printf () a função scanf ()
 Constantes – Operador de endereço &
 Variáveis – Função strlen()
 Formatação – Directiva #define
 Sequências de escape – Funções getche() e getch()
 Carateres gráficos – Funções getchar() e putchar(
 Valores de virgula flutuante )
Conteúdos UFCD 0783

 Operadores e expressões em C/C+


+ • Estruturas repetitivas em C/C++
 Operadores aritméticos – Implementação com a
 Operador de atribuição instrução while
– Implementação com a instrução
 Operadores +,-,/ e *
do while
 Operador unário - • Estruturas repetitivas complexas
 Operador módulo % – Estruturas matriciais
 Operador de incrementos ++ – Condições de controlo
 Operador de documentos – • Estruturas alternativas em C/C+
+
 Expressões aritméticas
– Instrução if e if else
 Precedências dos operadores – Condições e operadores lógicos
 Operadores de atribuição +=, -=, – Alternativas múltiplas
*=, /= e %= – Instruções break, contine e go to
 Operadores cast
 Operadores relacionais
 Expressões relacionais
Conteúdos UFCD 0784
 Funções • Apontadores
 Estrutura e argumentos de uma função – Definição e declaração de apontadores
 Variáveis locais – Operador indireto (*)
 Tipos de funções – Atribuição de valores a variáveis
 Funções recursivas apontadores
 Classes de armazenamento – Operações com apontadores
 Matrizes – Apontadores para matrizes
 Declaração de matrizes – Apontadores para strings
 Armazenamento de dados numa matriz – Apontadores para funções apontadores
 Leitura de dados de uma matriz como argumento de uma função
 Matrizes unidireccionais • Estruturas
 Matrizes multidimensionais – Definição e declaração de uma estrutura
 Matrizes como argumento de funções – Inicialização de uma estrutura
 Cadeias de carateres (string) – Matrizes de estruturas
 Strings constantes – Apontadores para estruturas
 Strings variáveis – Estruturas em lista ligada
 Matriz de strings • Uniões
 Leitura de strings – Definição e declaração de uniões
 Escrita de strings – Uniões de estruturas
 Função printf ()
 Bom trabalho 
Disciplina de Programação
UFCD 0782 - Programação em C/C++ - estrutura básica e conceitos
fundamentais

AULA 1, 2 e 3

2019/2020
Prof Célia
Reis
Sumário:

 Noções básicas de algoritmia


Programa de computador

 Um programa de computador consiste numa sequencia de


passos a serem executados.
 Se computadores cozinhassem em vez de processar dados, um
programa típico poderia ser:
Lógica de programação

 Lógica de Programação é a técnica de


desenvolver algoritmos (sequências lógicas)
para atingir determinados objectivos.
 Utiliza regras baseadas na Lógica
matemática e em outras teorias básicas da
Ciência da Computação.
 As sequencias lógicas são depois adaptadas
para a Linguagem de Programação utilizada
pelo programador para construir
determinado software.
Sequência lógica

 Sequência de instruções, que devem ser seguidas


para se cumprir uma determinada tarefa.
 Passos executados até atingir um objetivo ou a
solução de um problema
Instruções

 Conjunto de regras ou normas definidas para a


realização de qualquer coisa.
 Em informática, é o que indica a um computador
uma ação elementar a executar.
Fases da programação

Definição do problema

Planificação da resolução

Implementação - Codificação

Testes e depuração

Documentação

Manutenção
Fases da programação

 Definição do problema
 Definir o problema que se pretende resolver.
 A definição deve ser feita da forma mais clara possível.
 Não se pode seguir para a fase seguinte sem sem ter
um enunciado preciso de todos os aspectos do
problema a resolver.
Fases da programação

 Planificação da resolução
 Abordar o problema da forma mais adequada possível
à obtenção da solução
 É nesta fase que surgem os algoritmos
 Um algoritmo é um conjunto ou sequência finita e
ordenada de acções que conduzem à solução de um
determinado problema.
Fases da programação

 Implementação – codificação
 Após a definição do algoritmo passa-se à sua
codificação.
 A codificação consiste em transpor as indicações de
um algoritmo para uma determinada linguagem de
programação.
Fases da programação

 Testes e depuração
 Após obtido o código do programa é necessário testa-lo
com diversos tipos de dados e em diferentes situações.
 Tem como objectivo a detecção de erros, falhas ou
omissões.
Fases da programação

 Documentação
 Visa tanto programadores como utilizadores
 Para os programadores a documentação, pode em
grande parte, ser incluída no próprio código do
programa e visa facilitar a compreensão e a eventual
retoma de alterações.
 Para os utilizadores a documentação visa facilitar a
aprendizagem relativa ao modo de operar com o
programa.
Fases da programação

 Manutenção
 Possíveis alterações que sejam necessárias fazer ou
aperfeiçoamentos que se revelem úteis de introduzir.
 Esta fase tende a ocupar uma percentagem cada vez
maior no trabalho dos profissionais de programação.
Algoritmos e Algoritmia
 Um algoritmo é um conjunto ou sequência finita e ordenada de
acções que conduzem à solução de um determinado problema.
 Em matemática, constitui o conjunto de processos (e símbolos que
os representam) para efectuar um cálculo.
 Os algoritmos podem repetir passos (fazer iterações) ou
necessitar de decisões (tais como comparações ou lógica) até que
a tarefa seja completada.
 Um algoritmo correctamente executado não irá resolver um
problema se estiver implementado incorrectamente ou se não for
apropriado ao problema.
Algoritmos e Algoritmia

 Um algoritmo não representa, necessariamente, um


programa de computador, mas sim os passos
necessários para realizar uma tarefa.
 A implementação de um algoritmo pode ser feita
por um computador, por outro tipo de autómato ou
mesmo por um ser humano.
 Diferentes algoritmos podem realizar a mesma
tarefa usando um conjunto diferenciado de
instruções em mais ou menos tempo, espaço ou
esforço do que outros
Algoritmos e Algoritmia

 Um algoritmo correctamente formulado


permite-nos chegar sempre aos mesmos
resultados, desde que os dados ou
condições de partida sejam os mesmos.
 A algoritmia, ou seja, a formulação de
algoritmos, permite-nos separar duas
fases distinta na resolução de problemas:
 a fase de concepção ou formulação do algoritmo
 a fase da implementação do algoritmo numa linguagem
ou ferramenta de programação.
Algoritmos em linguagem
informal, pseudocódigo e
Representação esquemática de
Início Início
fluxogramas
algoritmos como sequências
de acções

Acção 1 Acção 1

Verdadeiro
Acção 2 Falso
Condição

Acção 3
Acção 3

Fim Fim

Sequência linear
Sequência não
linear
Algoritmos em linguagem
informal, pseudocódigo e
fluxogramas
 Exemplos de um algoritmo:
 Problema:
 Substituir uma lâmpada fundida
 1 – Preparar uma lâmpada nova.
 2 – Retirar a lâmpada fundida.
 3 – Colocar a lâmpada nova.
 4 – Ligar o interruptor.

 Sequências como a anterior representam


algoritmos formulados em linguagem
informal. È utilizada a nossa linguagem
natural e não uma linguagem convencional
com maior rigor.
Algoritmos em linguagem
informal, pseudocódigo e
fluxogramas
 Os algoritmos pensados para programas de
computador exigem uma formulação com
maior rigor e para isso existem linguagens
formais. As linguagens de programação
podem considerar-se linguagens formais.
 Em algoritmia são utilizadas linguagens e
formas de representação das instruções
como:
 Pseudocódigo
 Fluxogramas
 Outros diagramas.
Algoritmos em linguagem
informal, pseudocódigo e
fluxogramas
 Considere-se o seguinte algoritmo (em linguagem informal):
 Calcular a área de um rectângulo
 1 – Obter os valores do comprimento e da largura.
 2 – Calcular: área = comprimento x largura.
 3 – Apresentar o valor da área.

 No algoritmo são utilizadas três operações


básicas:
 Input ou entrada de dados
 Processamento interno (cálculos)
 Output ou saída de dados.
Algoritmos em linguagem
informal, pseudocódigo
Para uma formulação e podem ser
mais precisa dos algoritmos
utilizadas palavras convencionais para representar as operações
fluxogramas
em causa e variáveis para representar os dados. Por exemplo:
 Operações: Ler; Escrever.
 Variáveis: Comp; Larg; Area.
 Reformulando o algoritmo anterior:
Já utiliza palavras e sinais
Variáveis Area, Comp, Larg: Inteiros convencionais logo pode
Início considerar-se linguagem
formal
Ler (Comp, Larg);

Area <- Comp x Larg;

Escrever (Area) È considerado


pseudocódigo, uma vez
Fim
que se assemelha a uma
linguagem de
programação
Algoritmos em linguagem
informal, pseudocódigo e
fluxogramas Fluxograma
Início ou fim
s
Subalgoritmo

Entrada ou
saída de dados Selecção
múltipla
Processamento
interno

Decisão
comentários

Conector

Linha de fluxo
Algoritmos em linguagem
informal, pseudocódigo e
início
fluxogramas início

Ler(NotaExame
)
Ler(Com, Larg)

Falso
NotaExam >= 10
Area < Comp * Larg

Verdadeiro

Escrever(Area) Escrever(“Aprovado”) Escrever(“Reprovado”)

Fim

Fim
Noção de algoritmo

 Um algoritmo pode ser definido como uma sequência


finita de passos (instruções) para resolver um
determinado problema.
 Existem diversas formas de representação de algoritmos, mas não há um
consenso em relação à melhor delas.

 De entre as formas de representação de algoritmos mais conhecidas


podemos citar:

 Descrição Narrativa;

 Fluxograma Convencional;

 Pseudocódigo, também conhecido como Linguagem Estruturada ou


Portugol.
Exemplo de um pneu furado:

 Como trocar um pneu furado:

 Verificar se o pneu está furado


 Ir buscar os acessórios na bagageira
 Luxar ligeiramente as porcas com chave
 Colocar o macaco para suspender o carro
 Retirar as porcas
 Retirar o pneu furado
 Ir buscar o pneu suplente à bagageira
 Colocar o pneu suplente no eixo
 Colocar as porcas manualmente
 Apertar as porcas com a chave
 Tirar o macaco para baixar o carro
 Dar o aperto final nas porcas
 Arrumar os acessórios
 Arrumar o pneu suplente
exemplo2

 Exemplo do cálculo da média das notas de um aluno:

 Cálculo da média de um aluno:

 Obter as suas 2 notas de provas

 Calcular a média aritmética ((nota 1+nota2)/2)

 Se a média for maior que 9,5

 o aluno foi aprovado,

 senão ele foi reprovado


pseudocódigo

 Um algoritmo é constituído por um conjunto de expressões


simbólicas que representam ações (escolher, atribuir, etc.),
testes de condições (estruturas condicionais) e estruturas
de controlo (ciclos e saltos na estrutura sequencial do
algoritmo) de modo a especificar o problema e respetiva
solução.

 Este tipo de linguagem formal (que se assemelha a uma


linguagem de programação) costuma designar-se por
pseudocódigo.
pseudocódigo

 Exemplo
Calcular a área de um retângulo:

Variáveis Area, Comp, Larg: inteiros


Início
Ler (Comp, Larg)
Area <- Comp*Larg
Escrever (Area)
Fim
Características de um
algoritmo

 Entradas
Quantidades inicialmente especificadas (por exemplo,
através de instruções de leitura).

 Saídas
Uma ou mais saídas (habitualmente por instruções de
escrita).
A execução deve terminar sempre num número finito
de passos.
Disciplina de Programação
UFCD 0782 - Programação em C/C++ - estrutura básica e conceitos
fundamentais

AULA 4, 5 e 6

2019/2020
Prof Célia
Reis
Sumário:

 Estrutura de um programa em
C/C++
 Função main ()
 Estrutura de um programa
Programar, o que é?

 Programar é dar ordens para que os computadores façam o que você


quer que eles façam.
 
 Programação é o processo de escrita, teste e manutenção de um
programa de computador. O programa é escrito em uma linguagem de
programação, embora seja possível, com alguma dificuldade, escrevê-lo
diretamente em linguagem de máquina. Diferentes partes de um
programa podem ser escritas em diferentes linguagens.

 O primeiro passo é pensar como o computador pode resolver


determinado problema, isso é o chamado algoritmo .
 Um algoritmo nada mais é do que uma sequência de passos para se
realizar alguma coisa.

  
 O exemplo clássico para entender este conceito é pensar em uma receita de
bolo.
 Nela, temos ingredientes e uma ordenação de passos para fazer algo, no caso,
um bolo.
 A tradução dessa sequência de passos em uma sequência de códigos é chamada
de programa, o algoritmo concretizado.

 Geralmente, assume-se que um algoritmo deve satisfazer os seguintes


requisitos:
 Ser um conjunto finito de instruções simples e precisas, que são descritas com
um número finito de símbolos;
 Sempre produzir resultado em um número finito de passos;
 Poder, a princípio, ser executado por um ser humano com apenas papel e lápis;
 Não requerer inteligência do ser humano além do necessário para entender e
executar as instruções.
Criar o primeiro projeto em
visualstudio

 https://www.youtube.com/watch?v=s_1wzmXV5jI
Primeiro programa C#
 Escrever um programa
que mostre: Console.
 o teu nome,
 a morada,
 a escola onde estudas,
 o ano letivo;
Algoritmo
Algoritmo
Algoritmo
Algoritmo
Algoritmo
Aplique a sintaxe do comando se/senão para
resolver o seguinte exercício

 [0 – 5[  avaliação=Muito Fraco
 [5 – 9.5[  avaliação=Fraco
 [9.5 – 14[  avaliação=Suficiente
 [14 – 18[  avaliação=Bom
 [18 – 20]  avaliação=Muito Bom
 >20  “ERRO!!! A NOTA DEVE ESTAR ENTRE 0 E 20”
 https://pt.slideshare.net/apbertoletti/lp-aula06?next_
slideshow=1

 https://pt.slideshare.net/apbertoletti/lgica-de-progra
mao-40797831
Referencias

 http://
pt.wikibooks.org/wiki/Categoria:Livro/In
trodução_à_programação
 Azul, A. Augusto, Linguagens de
Programação. Programação e Sistemas
de Informação, Porto Editora, 2010