Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem C
Revisão de Conceitos de
Programação
2023
Conteúdo
●
Introdução
●
Histórico
●
Elementos fundamentais
– Estrutura de programa
– Variáveis e tipos
●
Estruturas de decisão
●
Estruturas de repetição
●
Funções
●
Ponteiros
Linguagem de Programação C
●
Linguagem de programação genérica, de alto nível
– Foi desenvolvida por programadores para programadores, tendo como meta características de
flexibilidade e portabilidade
– O C é uma linguagem que nasceu juntamente com o advento da teoria de linguagem estruturada e do
computador pessoal
– Tornou-se rapidamente uma linguagem “popular” entre os programadores
– Usado para desenvolver o sistema operacional UNIX
– Base para desenvolver novas linguagens, entre elas C++ e Java
●
C é uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando
sua programação bastante simplificada
– Consegue também acessar recursos de baixo nível do SO e do hardware disponível
●
Programas em C são compilados, gerando programas executáveis
Linguagem de Programação C
●
C compartilha recursos tanto de alto quanto de baixo
nível, pois permite acesso e programação direta do
microprocessador
– Rotinas cuja dependência do tempo é crítica, podem ser
facilmente implementadas usando instruções em Assembly
●
Estruturalmente simples (poucas funções intrínsecas)
– Permite a inclusão de uma quantidade arbitrária de rotinas
do usuário
– Fornecedores de compiladores fornecem uma grande
variedade de rotinas pré-compiladas em bibliotecas
Linguagem de Programação C
●
1970: Denis Ritchie cria uma linguagem a partir do BCPL
– AT & T Bell Labs
– Chama a linguagem de B
●
1972: Ritchie começa a melhorar B, criando o C
– Compilador foi incluído na versão 2 do Unix
●
1978: Brian Kerningham junta-se a Ritchie
– Livro “The C Programming Language”
– Especificação informal da linguagem
●
1983: A linguagem é padronizada pelo American National
Standard Institute: surge o ANSI C.
●
Anos 1990: Borland International Co, escolhe C e Pascal como
linguagens para o seu IDE
– Integrated Development Enviroment (Ambiente Integrado de
Desenvolvimento)
– Turbo Pascal e Turbo C
Linguagem de Programação C
●
História da linguagem C é bastante ligada à
história do sistema operacional Unix
– Unix foi originalmente implementado em Assembly
em um PDP-7
– Kernel do Unix foi reescrito em C em 1973
●
Version 4 Unix
●
Para um PDP-11
– Dennis Ritchie e Ken Thompson
●
Ambos receberam o Prêmio Turing
●
Implementação ligada ao hardware limitava ports
para outras plataformas
– Unix foi um dos primeiros sistemas operacionais
implementado em uma linguagem de alto nível
Estrutura de Programa
●
Cabeçalho
– Diretivas de compilador
●
Constantes simbólicas
●
Declaração de variáveis
●
Inclusão de bibliotecas
●
Declaração de rotinas
●
Blocos de instruções
– {…}
– Terminação de linha com ;
●
Bloco de instruções principal
– main()
●
Demais funções
●
Comentários
– // e /* … */
Variáveis
●
Espaços de memória
nomeados
●
Devem ser declaradas
– Tipo e nome
●
int c = 0;
●
Valor é opcional, mas recomendado
– Nomes são sensíveis a
maiúsculas/minúsculas
Tipos de dados
●
Utilizados para declaração de variáveis e funções
– Tipos básicos
●
Aritméticos (inteiros e ponto flutuante - IEEE-754)
●
Podem ou não ter sinal (unsigned)
●
Tamanho de armazenamento dependente da arquitetura do sistema operacional / cpu
– Tipos enumerados
●
Aritméticos com uma faixa discreta de valores
– Void
●
Sem valor
– Tipos derivados
●
Ponteiros, arrays, structures, union, function
Tipos inteiros
Tipo Tamanho de Faixa de valores
armazenamento
char 1 byte -128 a 127 ou 0 a 255
unsigned char 1 byte 0 a 255
signed char 1 byte -128 a 127
int 2 ou 4 bytes -32,768 a 32,767 ou
-2,147,483,648 a 2,147,483,647
} else { } else {
case constante :
comando(s);
break; /* opcional */
default : /* opcional */
comando(s);
}
Estruturas de decisão
char nota = 'B';
switch(expressão) {
switch(nota) {
case constante :
case 'A' :
comando(s); printf("Excelente!\n" );
break; /* opcional */ break;
case 'B' :
case 'C' :
case constante :
printf("Muito bom\n" );
comando(s); break;
break; /* opcional */ case 'D' :
printf("Aprovado\n" );
break;
default : /* opcional */
case 'F' :
comando(s); printf("Reprovado\n" );
} break;
default :
printf("Nota inválida\n" );
}
Estruturas de decisão
●
Operador condicional (?)
– Operador ternário
– Pode ser usado para substituir if...else em sentenças simples
●
Se usado sem cuidado, pode diminuir a legibilidade do código
●
Forma geral
– exp1 ? exp2 : exp3;
– condição ? verdadeiro : falso;
●
Exemplo
– max = (num1 > num2) ? num1 : num2;
Estruturas de repetição
●
Loops
●
Usando quando se precisa repetir a
execução de um bloco de código
– Eventualmente com parâmetros diferentes a
cada execução
●
Determinar as condições da execução
repetida
– Início e fim, número de repetições
●
Comandos
– while
– for
– do...while
Estruturas de repetição
while (condição) {
bloco;
}
Estruturas de repetição
while (condição) { int a = 0;
bloco;
} while( a <= 10 ) {
printf("Valor de a: %d\n", a);
a++;
}
Estruturas de repetição
for (ini;cond;incr) {
bloco;
}
ini: inicialização
cond: condição
incr: incremento
Estruturas de repetição
for (ini;cond;incr) { int a = 0;
for( a = 0; a <= 10; a = a + 1 ){
bloco;
printf("Valor de a: %d\n", a);
} }
comando(s);
do {
} while( condição ); printf("Valor de a: %d\n", a);
a = a + 1;
} while( a <= 10 );
Demonstrações
Funções
●
Sequência ou grupo de comandos que juntos realizam um determinado objetivo
– Também chamadas de sub-rotinas, procedures, métodos, etc
●
Todo programa C tem ao menos uma função
– main()
●
As bibliotecas padrão de C fornecem diversas “built-in functions”
– Usadas no dia-a-dia de programação
●
O código pode (deve) ser dividido em blocos e funções separadas
– Legibilidade, melhor manutenção
– Funções definidas pelo programador
Funções
●
Funções em C precisam ser declaradas com um function header e um function body
●
Principais partes
– Tipo de retorno
– Nome da função
– Parâmetros
– Corpo da função
leandro@utfpr.edu.br
http://lapti.ct.utfpr.edu.br