Introdução à Programação

Conhecimentos de Base Recomendados

Nenhuns em especial.

Métodos de Ensino

Em cada aula é efetuada uma breve exposição dos conceitos teóricos necessários, após a qual se realizarão exercícios de programação que consistem na codificação na linguagem C de problemas apresentados aos alunos.

Resultados de Aprendizagem

Objetivos: adquirir a capacidade de desenvolver estratégias de resolução de problemas e de codificar essas estratégias na linguagem de programação C.

 

Competências a desenvolver:

  • Simular a execução passo-a-passo de programas simples;
  • Escrever programas para resolver problemas simples (exemplos: cálculo numérico, processamento de texto);
  • Decompor problemas em sub-tarefas passíveis de implementação como funções reutilizáveis;
  • Testar e corrigir erros em programas.

Programa

1. Análise e estratégias de resolução de problemas.

2. Introdução ao pseudocódigo.

3. Fluxogramas.

4. Estrutura de um programa em C.
4.1 Comandos do pré-processador (#include e #define).
4.2 Função principal (main).
4.3 Funções auxiliares (protótipos).
4.4 Comentários.

5. Variáveis e tipos de dados.

6. Comando de atribuição e operadores aritméticos.

7. Organização da memória atribuída a um programa em C e introdução aos ponteiros.

8. Entrada e saída simples de dados (getc, scanf, putchar, e printf).

9. Tomada de decisão (if/else, if/else if/else, e switch/case)
9.1 Expressões booleanas.
9.2 Operadores relacionais (==, !=, >, >=, <, <=).
9.3 Operadores lógicos (!, &&, &, ||, e |).

10. Mecanismos de repetição.
10.1 Ciclo for.
10.2 Ciclo while.
10.3 Ciclo do … while.
10.4 Instruções continue e break.

11. Funções.
11.1 Estrutura das funções.
11.2 Parâmetros de entrada.
11.3 Passagem de parâmetros por valor e por referência.
11.4 Parâmetros de saída.
11.5 Variáveis locais, globais, e contexto (scope) das variáveis.

12. Vetores e Matrizes.
12.1 Unidimensionais, bidimensionais e multidimensionais.
12.2 Cadeias de caracteres (strings) e funções para sua manipulação.
12.3 Passagem de vetores e matrizes para funções.
12.4 Ponteiros e alocação dinâmica de memória.

13. Estruturas de dados
13.1 Definição de tipos de dados (typedef)
13.2 Estruturas de dados como membros de outras estruturas de dados.
13.3 Passagem de estruturas para funções (por valor e por referência).

14. Ficheiros.
14.1 De texto e funções para a sua manipulação.
14.2 Binários e funções para a sua manipulação.

Docente(s) responsável(eis)

Jorge Miguel Tavares Couceiro de Sousa

Métodos de Avaliação

  • A avaliação é efectuada por exame final, de acordo com as regras vigentes no IPC/ISEC.
  • O acesso à avaliação está dependente da presença a pelo menos 50% das horas totais de contacto, monitorizada pelo registo de presenças efectuado durante as aulas.

    Estágio(s)

    NAO

    Bibliografia

    • Kernighan, B. W. & Ritchie, D. M. (1988). The C programming language (2nd edition). Englewood Cliffs, N. J. : Prentice Hall.
      Cota da biblioteca do ISEC: 1A-1-68 (ISEC) – 05389, 1A-1-222 (ISEC) – 07998.
    • Damas, L. (). Linguagem C. FCA – Editora de Informática, Lda..
      Cotas na biblioteca do ISEC: 1A-1-321 (ISEC) – 10344, 1A-1-365 (ISEC) – 11819, 1A-1-366 (ISEC) – 11820, 1A-1-389 (ISEC) – 12100, 1A-1-200 (ISEC) – 15330, 1A-1-456 (ISEC) – 18949.