Informações

[xx-xx-2025]

--

 


Objetivos de aprendizagem

Os objetivos gerais de aprendizagem são os seguintes:

- Perceber os fundamentos de programação para resolver problemas de natureza computacional usando computadores

- Perceber como abstrair um problema concreto para a sua devida especificação/modelação e implementação na forma de um programa de computador

- Introduzir os conceitos básicos de programação imperativa

- Desenvolver capacidades de programação com recurso à linguagem C

- Perceber e saber como corretamente integrar uma solução programática com as contingências arquitetónicas de um computador (e.g. aritmética de computador, gestão dinâmica do recurso memória)

 


Programa

Fundamentos de computadores (hardware/software)

Desenho de algoritmos e programação estruturada

Estruturas básicas da linguagem C: tipos de dados básicos, variáveis e operadores (aritméticos, relacionais e lógicos)

Instruções de atribuição e de entrada/saída

Instruções condicionais

Instruções de repetição (ciclos)

Subprogramas (funções)

Tipos de dados compostos: arrays e strings

Apontadores (ponteiros).

Passagem de parâmetros/argumentos em subprogramas

Ficheiros de texto e binários

Tipos de dados definidos pelo utilizador: registos (estruturas)

Gestão dinâmica da memória

Algoritmos recursivos

Aritmética de computador

Técnicas básicas de otimização de código C

 


Bibliografia

"Linguagem C", 25ª Edição Atualizada e Aumentada, 2025

Luís Damas

FCA-Editora de Informática.

ISBN: 978-972-722-945-1

 

"Introdução à Programação Usando C", 2006

António Manuel Adrego da Rocha

FCA-Editora de Informática.

ISBN: 978-972-722-524-8

 

"Elementos de programação com C", 3ª Edição Atualizada e Aumentada, 2006

Pedro João Valente Dias Guerreiro

FCA-Editora de Informática.

ISBN: 978-972-722-510-1

 

"The C Programming Language", Second Edition, 1988

Brian W. Kernighan and Dennis M. Ritchie

Prentice Hall Software Series

ISBN: 978-013-110-362-7

 


Critérios de avaliação

A avaliação no período de Aprendizagem consiste no seguinte :

- 2 Testes escritos (Frequências): 16 valores (8 valores cada)

- 2 Mini-testes práticos a realizar nas aulas práticas (PL): 4 valores (2 valores cada)

Aprendizagem = Mini-testes práticos + Testes escritos (Frequências)

em que,

Situação

Classificação final

Presença nas aulas inferior a 50%

Reprovado e Não Admitido a Exame

Aprendizagem < 5,5 (em 20)

Reprovado e Não Admitido a Exame

Aprendizagem >= 9,5 (em 20)

Aprovado e Dispensado de Exame

Restantes casos

Reprovado e Admitido a Exame

Exame = Mini-testes práticos + Teste escrito

em que,

- Mini-testes práticos (realizados durante o período de Aprendizagem): 4 valores

- Teste escrito: 16 valores

 


Datas das avaliações

Mini-testes práticos

 

Data

Hora

Salas

MTP1

-

Aula PL

Aula PL

MTP2

-

Aula PL

Aula PL

Testes escritos (Frequências)

 

Data

Hora

Salas

Frequência 1

-

18 h

-

Frequência 2

-

18 h

-

 

Testes do ano letivo de 2024/2025

Frequência 1: Enunciado + Resolução

Frequência 2: Enunciado + Resolução

Exame de Época Normal: Enunciado + Resolução

Exame de Época de Recurso: Enunciado + Resolução

 


Classificações obtidas nas avaliações (ano letivo 2024/2025)

Mini-testes práticos

Frequência 1 (classificação em percentagem) ##  Resolução (sugestão)

Frequência 2 (classificação em percentagem) ##  Resolução (sugestão)

Aprendizagem (Mini-testes práticos + Frequências)

Exame - Época Normal (Teste escrito + Mini-testes práticos) ##  Resolução (sugestão)

Exame - Época de Recurso (Teste escrito + Mini-testes práticos) ##  Resolução (sugestão)

 


Apontamentos

Fundamentos de computadores. Hardware vs. Software

Desenho de algoritmos e programação estruturada

Estruturas básicas da linguagem C: tipo de dados simples, variáveis e operadores (aritméticos, relacionais e lógicos)

Instruções de atribuição e de entrada/saída

Instruções condicionais

Instruções de repetição (ciclos)

Subprogramas (funções)

Tipos de dados compostos: arrays

Tipos de dados compostos: strings (cadeia de carateres)

Apontadores/ponteiros.

Passagem de parâmetros/argumentos em subprogramas

Ficheiros de texto

Tipos de dados definido pelo utilizador: registos/estruturas

Gestão dinâmica da memória

Algoritmos recursivos

Ficheiros binários

Aritmética de computador

Técnicas básicas de otimização de código C

 


Folhas práticas

Folha Prática - Edição, compilação e execução de programas em C

Folha Prática - Manipulação de variáveis e de expressões

Folha Prática - Instruções de atribuição e de entrada/saída padrão

Folha Prática - Instruções condicionais

Folha Prática - Instruções de repetição

Folha Prática - Subprogramas (funções)

Folha Prática - Arrays

Folha Prática - Strings

Folha Prática - Apontadores/ponteiros

Folha Prática - Ficheiros de texto

Folha Prática - Registos/estruturas (struct)

Folha prática - Gestão dinâmica da memória

Folha Prática - Algoritmos recursivos

Folha Prática - Ficheiros binários

 

Sistema Operativo UNIX

Conta UNIX da UBI

Comandos do UNIX

 

Compiladores de C

DEV-C++ (versão 5.11) - para Windows

EMBARCADERO DEV-C++

CODEBLOCKS

TUTORIALSPOINT (online)

CODECHEF (online)

ONLINEGDB (online)

 

Resolução dos exercícios da folha prática "Arrays"

Biblioteca base

OperacoesBasicas.h ##  OperacoesBasicas.c

Arrays de 1 dimensão (inteiros)

Biblioteca: Array1DInteiros.h ##  Array1DInteiros.c

Programa principal: A1DInteiros.c

Arrays de 2 dimensões (reais)

Biblioteca: Array2DReais.h ##  Array2DReais.c

Programa principal: A2DReais.c

 

Resolução dos exercícios da folha prática "Apontadores"

Biblioteca base

OperacoesBasicas.h  ##  OperacoesBasicas.c

Arrays de 1 dimensão (reais)

Biblioteca: Array1DReais.h ##  Array1DReais.c

Programa principal: A1DReais.c

Arrays de 2 dimensões (reais)

Biblioteca: Array2DReais.h ##  Array2DReais.c

Programa principal: A2DReais.c

 

Resolução dos exercícios da folha prática "Memória Dinâmica"

Biblioteca base

OperacoesBasicas.h  ##  OperacoesBasicas.c

Arrays de 1 dimensão (inteiros) - resolução do exercício 3

Biblioteca: Array1DInteirosMD.h ##  Array1DInteirosMD.c

Programa principal: array1D_Ex3.c

Arrays de 1 dimensão (reais)

Biblioteca: Array1DReaisMD.h ##  Array1DReaisMD.c

 

Ficheiros de texto fornecidos:

Inteiros.txt

InteirosPositivos.txt

Multiplos.txt

Dados1.txt

Dados2.txt

Dados3.txt

Pessoas.txt

 


Avaliação prática

Mini-teste prático

Realizar teste

 

Plataforma de Avaliação

Acesso através dos computadores fixos das salas 6.14 e 6.19

Acesso através de outros computadores

 


Horário de atendimento

- Segunda-feira, 16h - 18h (Gabinete 4.2)

- Terça-feira, 16h - 18h (Gabinete 4.2)

- Outro horário (sujeito a marcação com o docente)

 


Horário da disciplina

 

Horas

Segunda

Sala

Terça

Sala

Quarta

Sala

Quinta

Sala

Sexta

Sala

8

  

 

 

 

 

 

 

 

 

 

9

 

 

 

 

PL2

FM

1209

 

 

 

 

10

 

 

 

 

 

 

 

 

11

TE

6.02

PL2

FM

1209

 PL4

FM

1209

 

 

 

 

12

TE

6.02

 

 

 

 

13

 

 

  

  

 

 

 

 

 

 

14

 

 

PL3

FM

1209

 

 

 

 

 

 

15

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

 

 

 

18