LINGUAGEM DE PROGRAMAÇÃO I “C”
Prof. : Marcelo Mendes
Portal do aluno MRM Sistemas
http://www.mrmsistemas.com.br/men
des
Linguagem C
1
CARGA HORÁRIA
80 horas
Período: 04/03/2015 a 30/03/2015
Linguagem C
2
AVALIAÇÕES
11/03/2015
19/03/2015
27/03/2015
Linguagem C
3
Bibliografia
• Schildt, H., C Completo e Total, Editora Makron
Books do Brasil Editora Ltda, 1997, 827p (livro
texto).
• Evaristo. J., Aprendendo a programar:
programando em C, Book Express,2001, 205p
• Mizrahi, V. V., Treinamento em Linguagem C,
Curso Completo, Módulos 1 (241p) e 2 (273p) ,
Makron Books do Brasil Editora Ltda,1990
Linguagem C
4
Software Dev-C++
Linguagem C
5
LINGUAGEM “C”
1 - INTRODUÇÃO
Linguagem C
6
Histórico
· Linguagem C foi inventada e implementada
por Brian W. Kernighan Dennis Ritchie em
um DEC-PDP 11 sobre o S.O. Unix na
década de 1970;
· Predecessor Linguagem B, de Ken
Thompson, que tinha forte influencia da
linguagem BCPL, de Martin Richards;
· Inicialmente C era fornecida junto com o
S.O. Unix, versão 5;
11/5/2015
Linguagem C
7
Histórico
• Com os microcomputadores apareceram
grande número de implementações de C o
que gerava discrepâncias;
• Em 1983 o ANSI (American National
Standards Institute) estabeleceu um padrão;
11/5/2015
Linguagem C
8
Características Básicas
• Linguagem de Nível Médio, pois combina
elementos de linguagens de alto nível
(Basic, Pascal) com a funcionalidade da
linguagem assembler (instruções de máquinas)
Permite manipulação de bits, bytes e
endereços;
• Linguagem Portável (Portabilidade);
11/5/2015
Linguagem C
9
Características Básicas
• As primeiras implementações de C não
consistiam parâmetros e argumentos, já o
padrão ANSI introduziu o conceito de
protótipos de funções;
• Possui 32 palavras chaves (27 originais de
seus criadores e 5 do comitê ANSI) (Obs.:
Basic possui mais de 100);
• C é estruturada, apesar de não permitir a
criação de funções dentro de funções;
11/5/2015
Linguagem C
10
Características Básicas
• Principal componente estrutural de C é a
função (blocos de construção);
• Tem o conceito de bloco de código ou bloco
de instruções, que é um grupo de comandos
de programa conectado logicamente e
tratado como uma unidade;
if (a < b)
{
printf(“valor de A é menor que B”);
scanf (“%d”,&numero);
}
11/5/2015
Linguagem C
11
Características Básicas
• C é uma linguagem para programadores, dá ao
programador o que ele quer: poucas restrições,
poucas reclamações, estruturas de blocos,funções
isoladas e um conjunto de palavras chaves ;
• Inicialmente C foi usada para S.O, compiladores,
interpretadores, planilhas, SGBD, hoje é usada na
construção de sistemas comerciais, sistemas de
controle, etc. (portabilidade, código compacto e
rápido);
• Atualmente em grande crescimento devido
ascensão do S.O Linux;
11/5/2015
Linguagem C
12
Compiladores e Interpretadores
• Qualquer linguagem de programação pode ser
compilada ou interpretada;
• Compiladores e interpretadores são
programas que operam sobre o código-fonte;
• Interpretador lê o código-fonte linha por linha
e executa-a;
• Compilador lê todo o código-fonte e
converte-o para código-objeto;
11/5/2015
Linguagem C
13
Compiladores e Interpretadores
• Código-objeto não é executável, precisa ser
utilizado um linkeditor para torná-lo
executável;
• Programas C são criados por intermédio da
linkedição de um ou mais códigos-objetos
com uma ou mais bibliotecas;
• Uma biblioteca é um conjunto de códigoslinkeditáveis criados, fornecidos com os
compiladores ou adquiridos;
11/5/2015
Linguagem C
14
Compiladores e Interpretadores
Ciclo de desenvolvimento
Início
Editar código
fonte
Erros de
linkedição?
Sim
Não
Sim
Compilar
Executar
programa
Erros de
compilação?
Não
Erros de
tempo de
Execução?
Sim
Não
Linkeditar
Fim
11/5/2015
Linguagem C
15
Estrutura de um Programa C
Declarações globais
tipo de retorno main (lista de parâmetros)
{
comandos;
}
tipo de retorno função1 (lista de parâmetros)
{
comandos;
}
..................
tipo de retorno função2 (lista de parâmetros)
{
comandos;
}
11/5/2015
Linguagem C
16
Ponto e vírgula, Chaves e
Comentários
• Ponto e vírgula:
– Todos os comandos em C terminam
obrigatoriamente com “;”.
• Chaves (Blocos de Comando)
– utilizadas para definir um bloco de comando,
que são grupos de comandos relacionados que
são tratados como uma unidade e estão
logicamente conectados. Um bloco começa
com uma { e termina com uma }
11/5/2015
Linguagem C
17
Ponto e vírgula, Chaves e
Comentários
– Um bloco de comando pode ser colocado em qualquer lugar onde
seja possível a inserção de um comando.
– Ex.:
–
–
–
–
–
–
–
–
–
–
–
–
–
11/5/2015
#include <stdio.h>
#include <conio.h>
int main()
{
int total, a,b;
printf ("Digite um numero: ");
scanf("%d",&a);
printf ("Digite outro numero: ");
scanf("%d",&b);
printf ("Os numeros digitados foram %d %d",a,b);
getch(); //segura tela
return 0;
}
Linguagem C
18
Ponto e vírgula, Chaves e
Comentários
• Comentários:
– Começa com o par de caracteres /* e termina com */ . Em C++ e
alguns compiladores //;
– Tudo é ignorado entre os símbolos de comentários;
– Uma palavra chave não pode conter comentários;
– Ex.:
/* x = x+1 ;
printf (“ %d\n”,x); */
soma_total + = valorMensal + /* valor mensal das despesas */
acumuladoAnterior;
11/5/2015
Linguagem C
19
Palavras Chaves
auto
break
case
char
const *
continue
default
do
double
else
enum *
extern
float
for
goto!!
if
int
struct
long
switch
register typedef
return
union
short
unsigned
signed *
void *
Sizeof
volatile*
static
while
* ANSI
11/5/2015
Linguagem C
20
Mapa de Memória em C
Pilha
Heap
Variáveis Globais
Código do Programa
11/5/2015
Linguagem C
21
Mapa de memória em C
• Pilha = usada para guardar o endereço de
retorno das chamadas de função,
argumentos para funções e variáveis locais
e estado atual da CPU;
• Heap = região de memória livre a ser usada
pelo programa via funções de alocação
dinâmica (Ex.: listas encadeadas e árvores)
11/5/2015
Linguagem C
22
C e C++
• C++ é uma versão estendida e melhorada de
C, projetada para suportar programação
orientada a objetos (OOP - Oriented Object
Programming);
• C++ é um superconjunto de C;
• Compiladores C++ também são
compiladores C padrão ANSI completo;
11/5/2015
Linguagem C
23
Tipos de Dados
• Tipos Básicos de Dados
Tipo
Tamanho em bits
char
int
float
8
16(depende)
32
Faixa
0 a 255
-32768 a 32767
-3.4E-38 a 3.4E38
seis dígitos de precisão
double
64
-1.7E-308 a 1.7E308
dez dígitos de precisão
void
11/5/2015
0
Linguagem C
sem valor
24
Tipos de Dados
• Modificadores de tipo
–
–
–
–
signed
unsigned
long
short
• Ex.: long int 32(bits) faixa ( -2.147.483.648 a 2.147.483.647)
• unsigned char 8 (bits) faixa de 0 a 255
11/5/2015
Linguagem C
25
Tipos de Dados
• Os modificadores signed, unsigned, short e
long podem ser aplicados aos tipos básicos
char e int;
• long pode ser aplicado a double (long float
tem o mesmo significado que double);
• Signed com int é redundante;
• unsigned com ponto flutuante pode ser
permitido mas reduz portabilidade;
11/5/2015
Linguagem C
26
Identificadores
• Identificadores = nomes de variáveis,
funções e outros objetos definidos pelos
usuários (não usar caracteres especiais);
• Primeiro caractere deve ser letra ou um
underscore e o restante pode ser letras,
números ou undersocores;
• Correto = xyz, soma_de_tudo
• Incorreto = 1x, ju!lio
11/5/2015
Linguagem C
27
Identificadores
• Em C, letras maiúsculas e minúsculas são
diferentes;
• Identificador não pode ser uma palavra
chave de C;
• Os identificadores devem ser auto
explicativos;
• Sugestão = somaTotalMensal, indicadorDeRepeticao
ou soma_total_mensal e indicador_de_repeticao
11/5/2015
Linguagem C
28
Variáveis
• Posição nomeada de memória, que é usada
para guardar um valor que pode ser
modificado pelo programa.
• Todas as variáveis em C devem ser
declaradas antes de serem usadas.
• Forma geral de declaração:
– tipo lista_de_variáveis;
– onde tipo = qualquer tipo válido mais qualquer
modificador
11/5/2015
Linguagem C
29
Variáveis
– Lista_de_variáveis = um ou mais nomes de
identificadores separados por vírgulas.
– O nome da variável não tem nenhuma relação
com o seu tipo.
• Ex.:
– short int controlador, id_processo_1;
– unsigned int total_funcionarios;
– double balanco_anual;
11/5/2015
Linguagem C
30
Variáveis
• Onde declarar:
– interna as funções ou blocos(variáveis locais);
– parâmetros de funções (parâmetros formais);
– fora de todas as funções (variáveis globais).
• Variáveis Locais (auto - redundante):
– Só podem ser referenciadas dentro das funções
ou blocos onde foram declaradas;
– Só existem enquanto o bloco de código onde
estão está sendo executado (armazenadas na pilha);
11/5/2015
Linguagem C
31
Variáveis
int calculaQuadrado (void)
{
int valor;
scanf(“%d”, &valor);
return (valor*valor);
}
int calculaCubo (void)
{
int valor;
scanf(“%d”, &valor);
return (valor*valor*valor);
}
11/5/2015
Linguagem C
32
Variáveis
– As variáveis locais podem ser declaradas dentro de qualquer bloco e não
apenas no início das funções.
void CalculaMediaDoisNumeros (void)
{
int primeiroValor, segundoValor;
printf(“entre como primeiro número = “);
scanf(“%d”, &primeiroValor);
printf (“entre com segundo valor = “);
scanf (“%d”,&segundoValor);
if (primeiroValor > egundoValor) {
int media; /* só é valida dentro do bloco */
media = (primeiroValor+segundoValor)/2;
printf (“media = %d \n”, media);
}
}
11/5/2015
Linguagem C
33
Variáveis
• Parâmetros Formais:
– São variáveis que recebem os valores dos argumentos das funções
e devem ser do mesmo tipo;
– Se comportam como qualquer outra variável local dentro da
função;
int ImprimeQuadrado( int valor)
{
int numeroPontos;
for (numeroPontos=0; numeroPontos <10; numeroPontos++)
printf(“.”);
printf(“ O quadrado de (%d) é (%d)\n”, valor, valor *valor);
return valor*valor;}
11/5/2015
Linguagem C
34
Variáveis
• Variáveis Globais – não usar( guardadas em área específica
memória):
– São reconhecidas dentro do contexto em que estão declaradas;
– São declaradas fora das funções;
int contador,x; /* declaração de variável global */
int main (void)
{
contador = 50; x=50;
ImprimePontos();
printf (“ Contador (%d) \n”, contador); /* imprime o valor 50 */
getch();
return 0; }
int ImprimePontos(void)
{
for (contador =0; contador < 100; contador ++)
printf( “%d”,x+contador); }
11/5/2015
Linguagem C
35
Variáveis
• Const
– Não podem ser modificadas pelo programa só podem receber um
valor inicial;
const int contador = 100;
– Pode ser usado também para proteger os valores passados como
parâmetros de uma função;
int Produto (const int a, const int b)
{
a += b;
/* não pode ser efetuada - erro de sintaxe */
return (a*b);
}
– Muitas funções da biblioteca C padrão usam const em suas
declarações de parâmetros, por exemplo :
– size_t strlen (const char *str)
11/5/2015
Linguagem C
36
Diretiva include
• Instrui ao compilador a ler outro arquivo a ser adicionado
aquele que contém a diretiva;
• Nome do arquivo deve estar entre aspas (procura-o
inicialmente no diretório atual) ou entre símbolos de menor ou
igual (procura-o no padrão do compilador - diretórios de include);
#include “meuProjeto.hpp”
#include <stdio.h>
• Recomendação :
– Aspas para incluir arquivos do projeto;
– Chaves angulares para incluir os arquivos de cabeçalho
padrão;
11/5/2015
Linguagem C
37
Função main()
• Função main()
– Deve existir em algum lugar do programa e
marca o ponto de início de execução do mesmo;
#include <stdio.h>
#include <conio.c> // implementga getch no devC++
int main (void)
{
printf( “hello este é o meu primeiro programa\n”);
getch();
return 0;
}
11/5/2015
Linguagem C
38
Função printf()
• É uma função que imprime um determinado
conteúdo na tela;
• Forma geral
– int printf (“string de controle”, lista de argumentos);
– string de controle - contém caracteres que serão
exibidos na tela e comandos de formatação;
– lista de argumentos - contém os valores a serem
formatados;
• Deve haver o mesmo número de argumentos e de
comandos de formato (ordem: esquerda->direita)
11/5/2015
Linguagem C
39
Função printf()
• Códigos Especiais:
\n
\r
\t
\”
\\
11/5/2015
nova linha
retorno do cursor
tabulador
aspas
barra
Linguagem C
40
Função printf()
• Códigos de impressão formatada
%c
%d, %i
%e
%E
%f
%g
%G
11/5/2015
Caractere
Inteiros com sinal
Notação científica (e minúsculo)
Notação científica (E maiúsculo)
Ponto flutuante
usa %e ou %f, que for mais curto
usa %E ou %f, que for mais curto
Linguagem C
41
Função printf()
• Códigos de impressão formatada
%o
%s
%u
%x
%X
%%
11/5/2015
Octal
String
Inteiros sem sinal
Hexadecimal (letras minúsculas)
Hexadecimal (letras maiúsculas)
Escreve o símbolo
Linguagem C
42
Função printf()
#include <stdio.h>
#include <conio.c> // implementa getch no devC++
int main (void)
{
int i;
for (i=0; i<80;i+=10)
printf(“ %d”,i); ======> 0 10 20 30 40 50 60 70
printf(“ valor de float(%f) \n”, 123.4567); ===> valor de float(123.4567)
printf(“string (%s)\n”, “teste de impressão”);===> string( teste de impressão)
getch();
return 0;
}
11/5/2015
Linguagem C
43
Função printf()
• Largura mínima de campo
– Número colocado entre o símbolo % e o código de
formato;
– 0 antes do especificador de largura mínima coloca 0s a
esquerda;
– Usado para produzir tabelas;
double soma;
soma = 1234.56;
printf(“%f\n”, soma); ===> 1234.56
printf(“%8f\n”, soma); ====> 1234.56
printf(“%012f\n”, soma); ====> 000001234.56
11/5/2015
Linguagem C
44
Função printf()
• Especificador de precisão
– Segue o especificador de largura mínima se
houver;
– Consiste em um ponto (.) seguido de um
número;
– Ponto flutuante - especifica o número de casas
decimais;
– %g ou %G - especifica a quantidade de dígitos
significativos;
11/5/2015
Linguagem C
45
Função printf()
– String - determina o comprimento máximo do
campo;
– Inteiros - identifica o número de dígitos dos
números, sendo adicionado zeros para
completar;
printf (“%.4f\n”, 8976.12345678); ==> 8976.1234
printf(“%5.9s\n”,”hello, como vai”); ===> hello com
11/5/2015
Linguagem C
46
Função printf()
• Justificação
– As saídas são justificadas a direita, para
justificar a esquerda colocar o sinal menos após
o %;
printf(“%-10.2f\n”, 3456.8909); ===> 3456.89
printf(“%10.2d\n”, 3456.8909); ====> 3456.89
• Manipulação outros tipos de dados
– l - tipo de dado long ( Ex. %ld, %lf);
– h - tipo de dado short (Ex. %hu);
11/5/2015
Linguagem C
47
Função scanf()
• Rotina de entrada pela console;
• Próximo do inverso da printf
– int scanf(“string de controle”, lista de argumentos);
– string de controle - determina como os valores serão
lidos;
– lista de argumentos - argumentos a serem lidos (passar
endereços);
11/5/2015
Linguagem C
48
Função scanf()
• Especificadores de formato
%c
%d
%e, %f
%o
%s
%x
%g
%u
11/5/2015
lê caracter
lê inteiro
lê ponto flutuante
lê octal
lê string
lê hexadecimal
lê ponto flutuante
lê inteiro sem sinal
Linguagem C
49
Função scanf()
#include <stdio.h>
#include <conio.c> // implementa getch no devC++
int main (void)
{
int i, j;
unsigned soma;
scanf (“%d%d”, &i,&j);
scanf (“%u”, &soma);
• }
11/5/2015
Linguagem C
50
Função clrscr()
• Esta função efetua a limpeza de toda a tela
(ou janela). Esta limpeza consiste em apagar
todos os símbolos (ou caracteres) que
estavam sendo apresentados em um
momento anterior.
• Com a limpeza de toda a tela o cursor fica
posicionado na primeira posição dela, ou
seja, no canto superior esquerdo.
11/5/2015
Linguagem C
51
Função clrscr()
• Exemplo:
#include <conio.c> // implementa clrscr no devC++
#include <stdio.h>
int main (void)
{
float salario;
printf(“ Digite o salario do funcionario: “);
scanf(“%f “,&salario);
clrscr( );
printf(“O salario lido e = %.2f ”, salario);
getch();
return 0;
}
11/5/2015
Linguagem C
52
Função gotoxy()
• A execução de um programa elaborado no compilador C
abre uma nova janela que possui um tamanho padrão de 24
linhas, por 80 colunas.
Colunas (1 => 80)
Informe sua idade
25
Linhas (1 => 24)
Sua fase é adulta
11/5/2015
Linguagem C
53
Função gotoxy()
• Esta função possibilita o posicionamento exato do
cursor na execução de qualquer programa em C.
gotoxy(<coluna> , <linha>);
• Exemplo:
#include <conio.c> // implementa gotoxy no devC++
#include <stdio.h>
:
gotoxy(24,11); /* posiciona cursor coluna 24 linha 11 */
printf("Aula de Laboratorio deProgramacao");
11/5/2015
Linguagem C
54
Download

linguagem “c” - MRM Sistemas