LPC: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
Sem resumo de edição
imported>Fargoud
 
(37 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=INTRODUÇÃO=
= Horário  =
Uma das linguagens mais utilizadas por técnicos e pesquisadores é a linguagem C.


Isto ocorre principalmente pela versatilidade e pela complexidade da linguagem, que permitem a criação de programas muito sofisticados.
{| border="1" cellpadding="2" cellspacing="0"
! style="background: #32CD32; color:white" | Horário
! style="background: #32CD32; color:white" | Segunda
! style="background: #32CD32; color:white" | Terça
! style="background: #32CD32; color:white" | Quarta
! style="background: #32CD32; color:white" | Quinta
! style="background: #32CD32; color:white" | Sexta
|-
!style="text-align: center;" | 08:00 - 08:55
!style="color: #2F8F8F;" | 
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
|-
!style="text-align: center;" | 08:55 - 09:50
!style="color: #2F8F8F;" | 
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
|-
!style="color: #2F8F8F;" | -
!style="color:green;" | I n t e r v a l o
!style="color:green;" | I n t e r v a l o
!style="color:green;" | I n t e r v a l o
!style="color:green;" | I n t e r v a l o
!style="color:green;" | I n t e r v a l o
|-
!style="text-align: center;" | 10:10 - 11:05
!style="color: #2F8F8F;" | 
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
|-
!style="text-align: center;" | 11:05 - 12:00
!style="color: #2F8F8F;" | 
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
!style="color: #2F8F8F;"| 
!| Introdução à Linguagem C
|-


==HISTÓRICO==
|}
<br>


A primeira versão da linguagem foi desenvolvida por dois pesquisadores da Bell Laboratories, [https://en.wikipedia.org/wiki/Brian_Kernighan ''Brian Kernighan'' ] e [https://pt.wikipedia.org/wiki/Dennis_Ritchie ''Dennis Ritchie''].
=Plano de Ensino=


A empresa necessitava de uma linguagem especificamente para escrever o sistema operacional UNIX, mas C revelou-se tão eficiente e "transportável" para outros sistemas operacionais, sistemas e hardwares que seu uso alastrou-se rapidamente.
[http://wiki.sj.ifsc.edu.br/wiki/index.php/PRG1-EngTel_(Plano_de_Ensino) Plano de Ensino da Disciplina]


Esta primeira versão, chamada "K&R" sofreu algumas modificações com o tempo, para adaptar-se a computadores com mais de 8 bits e assim nasceu a versão "ANSI C", considerada um padrão da linguagem.


Algum tempo depois, com a moda de programação orientada a objetos, nasceu a versão C++ que não mais segue a programação linear. Várias empresas criaram seus próprios compiladores C e assim apareceram o MS C (Microsoft), o Turbo C, Borland C, etc.
<!--<blockquote style="background: #32CD32; border: 1px solid black; padding: 1em; color:blue">


==CARACTERÍSTICAS DA LINGUAGEM==
=Plano de Ensino=


“C é uma linguagem compilada, estruturada e de baixo nível.”
[http://wiki.sj.ifsc.edu.br/wiki/index.php/PRG1-EngTel_(Plano_de_Ensino) Plano de Ensino da Disciplina]


Linguagem compilada porque, após ser escrita num editor de textos qualquer (que siga o padrão ASCII), precisa ser decodificada, compilada (cada módulo separadamente) e linkada para obter-se um programa executável.
</blockquote> -->


Certos softwares como o Turbo C e o Borland C permitem que se edite, compile e linke os programas em C dentro de um mesmo ambiente (chamado de “IDE”, ou “Integrated Development Environment”), o que facilita muito a manipulação.
=Aulas=


:AULA 1 - [http://wiki.sj.ifsc.edu.br/wiki/index.php/AULA_1_-_Programa%C3%A7%C3%A3o_1_-_Gradua%C3%A7%C3%A3o  Dia 13/04/2017 - Introdução à Programação e Fluxogramas]
:AULA 2 - [http://wiki.sj.ifsc.edu.br/wiki/index.php/AULA_3_-_Programa%C3%A7%C3%A3o_1_-_Gradua%C3%A7%C3%A3o  Dia 20/04/2017 - Expressões e Estruturas de decisão]]
:AULA 3 - [http://wiki.sj.ifsc.edu.br/wiki/index.php/AULA_4_-_Programa%C3%A7%C3%A3o_1_-_Gradua%C3%A7%C3%A3o  Dia 27/04/2017 - Estruturas de repetição]]
:AULA 4 - [[AULA 5 - Introdução à Linguagem C - FIC |  Dia 04/05/2017 - Introdução à Linguagem C]]
:AULA 5 - [[AULA 8 - Microcontroladores - Técnico |  Dia 11/05/2017 - Estrutura de um programa em C]]
:AULA 6 - [[AULA 8 - Microcontroladores - Técnico |  Dia  18/05/2017 - Constantes e Variáveis]]
:AULA 7 - [[AULA 9 - Microcontroladores - Técnico |  Dia 25/05/2017 - Operadores]]
:AULA 8 - [[AULA 9 - Microcontroladores - Técnico |  Dia 01/06/2017 - Operadores]]
:AULA 9 - [[AULA 9 - Introdução à Linguagem C - FIC |  Dia 08/06/2017 - Conversões de Tipos]]
:AULA 10 -[[AULA 10 - Introdução à Linguagem C - FIC |  Dia 15/06/2017 - Instruções de Controle de Fluxo - IF e IF-ELSE]]
:AULA 11 -[[AULA 11 - Introdução à Linguagem C - FIC |  Dia 22/06/2017 - Instruções de Controle de Fluxo - WHILE e DO-WHILE]]
:AULA 12 - [[AULA 12 - Introdução à Linguagem C - FIC|  Dia 29/06/2017 - Instruções de Controle de Fluxo - FOR e SWITCH]]
:AULA 13 - [[AULA 13 - Introdução à Linguagem C - FIC |  Dia 06/07/2017 - Funções]]
:AULA 14 - [[AULA 14 - Introdução à Linguagem C - FIC |  Dia 03/08/2017 - Funções]]
:AULA 15 - [[AULA 14 - Microcontroladores - Técnico |  Dia 10/08/2017 - Matrizes]]
:AULA 16 - [[AULA 15 - Microcontroladores - Técnico |  Dia 17/08/2017 - Ponteiros]]
:AULA 17 - [[AULA 17 - Introdução à Linguagem C - FIC |  Dia 24/08/2017 - Prova 1 - Correção]]
:AULA 18 - [[AULA 18 - Introdução à Linguagem C - FIC |  Dia 31/08/2017 - Exercícios sobre Matrizes]]
:AULA 19 - [[AULA 19 - Introdução à Linguagem C - FIC |  Dia 14/09/2017 - Estruturas]]
:AULA 20 - [[AULA 20 - Introdução à Linguagem C - FIC |  Dia 21/09/2017 - Ponteiros para Estruturas]]
:AULA 21 - [[AULA 21 - Introdução à Linguagem C - FIC |  Dia 28/09/2017 - Ponteiros para Estruturas]]
:AULA 22 - [[AULA 22 - Introdução à Linguagem C - FIC |  Dia 05/10/2017 - Listas encadeadas]]
:AULA 23 - [[AULA 23 - Introdução à Linguagem C - FIC |  Dia 19/10/2017 - Listas encadeadas]]
:AULA 24 - [[AULA 24 - Introdução à Linguagem C - FIC |  Dia 26/10/2017 - Listas encadeadas]]
:AULA 25 - <span style="color:blue;">  Dia 14/10/2016 - <span style="color:blue;"> Avaliação - Teórico/prática </span>


É uma linguagem estruturada porque segue o padrão de endentação, tal como em Pascal e Fortran por exemplo, com alinhamentos dos blocos lógicos cada vez mais à direita, quanto mais "interno" ao bloco for o comando, e com execução linear, sem utilização de goto's, break's, etc.
=Material de apoio=




Finalmente é uma linguagem de baixo nível por permitir acesso às camadas lógicas mais baixas da máquina. Isto é, por aproximar-se bastante da linguagem de máquina, Assembler, que apesar de bastante rudimentar tem a capacidade de acessar diretamente a memória, o hardware do computador, como registradores, portas, posições da RAM, etc.  
:[[media: cursoC.pdf|Apostila Profa. Fernanda sobre Linguagem C]]


Com isto, ganha-se muito em rapidez de execução e em poder para utilizar completamente os recursos do computador.  
Aplicativo IDE Codeblocks para programação em Linguagem C, com compilador GCC e depurador: [https://www.fosshub.com/Code-Blocks.html?dwl=codeblocks-17.12mingw-setup.exe]


É importante salientar que apesar de ser possível utilizar-se funções muito complexas de baixo nível em C, um programador não interessado nisto terá uma linguagem estruturada como qualquer outra de alto nível.
=Exercicios=
* Exercicio do boneco que se desloca na tela:
[[boneco boneco]]


* Códigos Avaliação 1:


Outra característica importante é que C é uma linguagem de “estilo livre”, sem formatação rigorosa como Fortran e Basic. Em Basic, cada linha contém um comando e cada comando ocupa somente uma linha (às vezes, há até numeração das linhas). Em Fortran, os arquivos de saída contém espaços reservados para cada string, valor de caractere ou espaço em branco que deverá ser impresso. Nada disto ocorre em C. Desde que a sintaxe correta seja seguida, não há maiores restrições na linguagem. Ou melhor, quase não há.
:[[media: aval1162.pdf|Resolução dos exercícios para casa]]


 O programador não pode esquecer que o compilador C diferencia caracteres minúsculos de maiúsculos. Por exemplo, as variáveis "numero" e "Numero" são consideradas diferentes uma da outra na linguagem C.
[[problema Analise Combinatoria]]


Um avanço significativo que C possibilitou, foi escrever-se um programa numa linguagem de alto nível (que C não deixa de ser) e ter, após a compilação, um código gerado diretamente em Assembler.
* Exercícios sobre matrizes:


Qual a vantagem nisto? Quem trabalha com circuitos contendo microprocessadores ou microcontroladores sabe! Até pouco tempo seria necessário escrever  páginas de código em Assembler para funções simples.
[[solucaomat]]


Agora, com o uso de compiladores como o Keil - C ou Avocet, o programador escreve o código em C e o compilador encarrega-se de transformá-lo em Assembler.
* Exercícios sobre estruturas:
Costuma-se dizer que o C é uma linguagem extremamente "portável". Ou seja, foi desenvolvido para UNIX, mas roda muito bem em DOS. Além disto, um programa escrito em C, para uma estação de trabalho provavelmente rodará num PC ou num computador médio; ou mesmo passará de um IBM-PC para um Machintosh. Isto ocorre porque C não é rígido, não tem funções pré-definidas de I/O (aliás, de nenhum tipo) para cada máquina e adapta-se a qualquer hardware. Funções específicas (como entrada e saída) para cada máquina devem ser escritas pelo próprio usuário e certamente estas não rodariam num hardware diferente. Uma opção para o programador mais prático (ou preguiçoso) é procurar nas dezenas de arquivos de biblioteca ".h" (por exemplo, "stdio.h") uma função que se encaixe nas suas necessidades. É importante salientar que também estas funções (como por exemplo, printf(), que imprime saídas formatadas na tela) foram desenvolvidas por usuários e não pertencem à linguagem original. Na verdade, quase tudo em C é definido pelo usuário, daí sua complexidade e ao mesmo tempo, seu poder.
[[solucaoestr]]
 
* Exercícios sobre ponteiros:
 
[[solucaopont]]
 
* Exercícios sobre estruturas de dados:
 
[[solucaoestdados]]
 
=Resultados=
[[Notas 2016-2]]

Edição atual tal como às 10h05min de 24 de outubro de 2019

Horário

Horário Segunda Terça Quarta Quinta Sexta
08:00 - 08:55 Introdução à Linguagem C Introdução à Linguagem C
08:55 - 09:50 Introdução à Linguagem C Introdução à Linguagem C
- I n t e r v a l o I n t e r v a l o I n t e r v a l o I n t e r v a l o I n t e r v a l o
10:10 - 11:05 Introdução à Linguagem C Introdução à Linguagem C
11:05 - 12:00 Introdução à Linguagem C Introdução à Linguagem C


Plano de Ensino

Plano de Ensino da Disciplina


Aulas

AULA 1 - Dia 13/04/2017 - Introdução à Programação e Fluxogramas
AULA 2 - Dia 20/04/2017 - Expressões e Estruturas de decisão]
AULA 3 - Dia 27/04/2017 - Estruturas de repetição]
AULA 4 - Dia 04/05/2017 - Introdução à Linguagem C
AULA 5 - Dia 11/05/2017 - Estrutura de um programa em C
AULA 6 - Dia 18/05/2017 - Constantes e Variáveis
AULA 7 - Dia 25/05/2017 - Operadores
AULA 8 - Dia 01/06/2017 - Operadores
AULA 9 - Dia 08/06/2017 - Conversões de Tipos
AULA 10 - Dia 15/06/2017 - Instruções de Controle de Fluxo - IF e IF-ELSE
AULA 11 - Dia 22/06/2017 - Instruções de Controle de Fluxo - WHILE e DO-WHILE
AULA 12 - Dia 29/06/2017 - Instruções de Controle de Fluxo - FOR e SWITCH
AULA 13 - Dia 06/07/2017 - Funções
AULA 14 - Dia 03/08/2017 - Funções
AULA 15 - Dia 10/08/2017 - Matrizes
AULA 16 - Dia 17/08/2017 - Ponteiros
AULA 17 - Dia 24/08/2017 - Prova 1 - Correção
AULA 18 - Dia 31/08/2017 - Exercícios sobre Matrizes
AULA 19 - Dia 14/09/2017 - Estruturas
AULA 20 - Dia 21/09/2017 - Ponteiros para Estruturas
AULA 21 - Dia 28/09/2017 - Ponteiros para Estruturas
AULA 22 - Dia 05/10/2017 - Listas encadeadas
AULA 23 - Dia 19/10/2017 - Listas encadeadas
AULA 24 - Dia 26/10/2017 - Listas encadeadas
AULA 25 - Dia 14/10/2016 - Avaliação - Teórico/prática

Material de apoio

Apostila Profa. Fernanda sobre Linguagem C

Aplicativo IDE Codeblocks para programação em Linguagem C, com compilador GCC e depurador: [1]

Exercicios

  • Exercicio do boneco que se desloca na tela:

boneco boneco

  • Códigos Avaliação 1:
Resolução dos exercícios para casa

problema Analise Combinatoria

  • Exercícios sobre matrizes:

solucaomat

  • Exercícios sobre estruturas:

solucaoestr

  • Exercícios sobre ponteiros:

solucaopont

  • Exercícios sobre estruturas de dados:

solucaoestdados

Resultados

Notas 2016-2