João Araujo
Dr. en Informatique, Université de Versailles, França.

Laboratório de Programação

Nesta disciplina estudaremos a linguagem C, porém este curso não é um curso de Linguagem C. Muitos alunos pensam isso, mas apenas vamos usar a linguagem C para aplicar conhecimentos adquiridos em outras disciplinas, como Estrutura de Dados, em exercícios práticos de laboratório.

Grupos do Google
Participe do grupo Laboratorio de Programacao-DESC-UERJ
E-mail:
Visitar este grupo

Referências

  • KERNIGHAN,B.W. & RITCHIE,D.M. A Linguagem de Programação C. Padrão ANSI. Rio de Janeiro, Editora Campus, 1990. 289p. Livro Texto (Errata)
  • Linguagem C (em inglês)
  • Linguagem C (em português)

História do Sistema Unix

Calendário 2011/2

AulaDataDescriçãoOnde
1 07.11.2012Apresentação, Introdução da Linguagem C.
2 08.11.2012Introdução ao Sistema GNU/Linux
3 14.11.2012Cap 1:Uma apresentação através de Exemplos itens 1.1,1.2
4 21.11.2012Cap 1: 1.3,1.4,1.5.1,1.5.2
5 22.11.2012Cap 1: 1.5.3,1.5.4, 1.6
6 28.11.2012Cap 1: 1.7 ex 1.15,1.8, 1.9 :!: Lista 1 ex. 1-13, 1-14, 1-19
7 29.11.2012Cap 1:1.10, Cap 2: Tipos, Operadores e Expressões2.1,2.2,2.3,2.4,2.5,2.6,2.7 :?: Exercício:2-3
8 05.12.2012Cap 2: 2.8, ex 2-4
9 06.12.2012Cap 2: 2.9, ex. 2-6 Lista 2.
10 12.12.2012Cap 2: 2.10,2.11,2.12. Ex. 2-10
11 13.12.2012Cap 3: Fluxo de Controle 3.1,3.2,3.3 Ex. Exerc. lab1 .Entrega LIsta 1. Lista 2: 2-5 e 2-7
12 19.12.2012Cap 3: 3.4
13 20.12.2012Cap.3 3.5,3,6
14 02.01.2013Cap.3 3.7,3.8,
15 03.01.2013entrega da lista 2. Lista 3 (fazer Prova P1 2008-1)
16 09.01.2013Cap.4: Funções e Estrutura de Programa. 4.1 Lista 4 (fazer prog para descriptografar prova p1)
17 10.01.2013Primeira Prova - Entrega lista 3
18 16.01.2013.Cap.4: 4.2,4.3, 4.4,4.5,4.6,4.7,4.8,4.9,4.10 -Recursividade
19 17.01.2013Cap.4 4.11,4.11.1,4.11.2,4.11.3 Cap. 5: Apontadores e Vetores 5.1,5.2,
20 23.01.2013Cap.5 5.3,5.4,5.5
21 24.01.2013Cap.5 5.6
22 30.01.2013Cap.5 5.7,5.8,5.9
23 31.01.20135.10, Cap.6:6.1,6.2
24 06.02.2013Cap.6: 6.3, 6.4,6.5
25 07.02.2013Trabalho
26 20.02.2013Trabalho
27 21.02.2013Trabalho
28 27.02.2013Trabalho
29 28.02.2013Trabalho
30 07.03.2013Segunda prova e Entrega do Trabalho
Final 14.03.2013Prova Final

Apresentações

A história do Unix

Exercícios de aula

lab1

Fazer um programa em C que:

  1. Crie um vetor de inteiros aleatórios com 100 elementos.
  2. Ordene este vetor.
  3. Faça uma busca binária neste vetor ordenado.

Trabalhos

Provas

Avaliação

  1. Duas provas P1 e P2 (peso 7)
  2. Um Trabalho T (peso 2)
  3. Listas de Exercícios: L1,L2…,Ln (peso 1)

Cálculo da Nota

{Média=} {0.7*{1/2}sum{n=1}{2}{P_n}}+0.2*T+0.1*{1/N}sum{n=1}{N}{L_n}

Média com prova final

{Média Final=} {Média+PF}/2

Critérios

  • Média >= 7,0 Aprovado
  • Média <4,0 Reprovado
  • Média >=4,0 e <7,0 Prova Final
  • Média Final >=5,0 Aprovado
  • Média Final <5 Reprovado

Write in C

Compilador e S.O.

Durante o curso será utilizado o compilador GCC, e todos os programas serão corrigidos com este compilador em ambiente Linux.

Dicas

math.h

Para usar a biblioteca math.h com o gcc, use o comando gcc -lm <arquivo.c>. Esta opção linka seu programa com a math.h.

Controlando o console

Para enviar caracteres de escape e controlar o console, podemos usar o printf e os caracteres de controle que são escritos dentro da string de formatação. Para isso, colocamos \e[ antes do caracter de controle do console. Os caracteres de escape do console no linux podem ser consultados com o comando man console_codes.

exemplo:

escreve em vermelho: printf(“\e[31m %d”,3);

escreve em preto: printf(“\e[30m %d”,3)

limpa a tela: printf(“\e[H\e[2J”);

melhor ainda, use um #define no início de seu programa e chame ele como uma função normal:

#define clrscr() printf(“\e[H\e[2J”)

Arquivos texto de DOS para Linux

Quando usamos um arquivo editado no Windows, pelo Notepad ou similares, o caractere de return é composto, na verdade, de dois caracteres. No Linux é composto apenas por um. Quando o arquivo é aberto, aparecem uns ^M no final de cada linha, que são os caracteres que sobraram. Para eliminá-los no Linux, basta fazer em um console:

tr -d '\r' < arquivo_dos

se quiser pode redirecionar para ter outro arquivo como saída:

tr -d '\r' < arquivo_dos > arquivo_linux

Limpando um KDE defeituoso

Se você entrou no KDE e ele está uma bagunça e não dá nem mesmo para ver a barra de programas, você pode seguir o seguinte procedimento:
  1. Dê logout no sistema.
  2. Abra o console, apertando CTRL+ALT+F2.
  3. Faça seu login no modo texto.
  4. entre o comando “cd .kde”. Este comando é essencial. Não faça nada enquanto não fizer isto e ver no seu prompt a indicação de que você está dentro do diretório ”.kde”.
  5. Olhe de novo se você está dentro deste diretório.
  6. Agora que você tem certeza absoluta que está em ”.kde” (não diga que eu não avisei para você garantir isso). Faça: “rm -R -f *”. Isto vai apagar todas as suas configurações do kde, que estavam defeituosas.
  7. Faça logout do modo texto digitando “exit”.
  8. Pressione CTRL+ALT+F7, para entrar no modo gráfico.
  9. Faça login no modo gráfico e voilà! o kde deve estar normal agora.

Usando Pendrive nos micros do LabComp

Para acessar o pendrive nos laboratórios pelo linux, pode ser de duas maneiras:
  1. Em uma janela de console digitar “mount /mnt/sda1”;
  2. Pelo konqueror acessar: midia de armazenamento e escolher o drive sda1.

obs: no caso da montagem ser a opção nro 1, o acesso ao pendrive também pode ser feito pelo konqueror.

Uso de cores com o printf e console no linux

//Definição das cores pelo console
#define PRETO "\e[40m  \e[49m"
#define VERMELHO  "\e[41m  \e[49m"
#define VERDE  "\e[42m  \e[49m"
#define MARROM  "\e[43m  \e[49m"
#define AZUL  "\e[44m  \e[49m"
#define MAGENTA  "\e[45m  \e[49m"
#define CIANO  "\e[46m  \e[49m"
#define CINZA "\e[47m  \e[49m"
 
 
   printf(VERMELHO);
   printf(VERDE); 
   printf(CINZA); 
   printf(MARROM);
   printf(AZUL); 
   printf(PRETO); 
   printf(MAGENTA); 
   printf(CIANO); 
   printf(CIANO);
laboratorio_de_programacao.txt · Última modificação: 08/11/2012 13:44:44 por araujo
geomatica Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0