View
107
Download
3
Category
Preview:
Citation preview
Linguagem C 1
LINGUAGEM DE PROGRAMAÇÃO I “C”
Prof. : Marcelo Mendes
Portal do aluno MRM Sistemas
http://www.mrmsistemas.com.br/mendes
Linguagem C 2
CARGA HORÁRIA
80 horas
Período: 15/08/2014 a 12/08/2014
Linguagem C 3
AVALIAÇÕES
22/08/2014
02/09/2014
10/09/2014
Linguagem C 4
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 5
Software Dev-C++
Linguagem C 6
LINGUAGEM “C”
1 - INTRODUÇÃO
04/11/23 Linguagem C 7
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;
04/11/23 Linguagem C 8
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;
04/11/23 Linguagem C 9
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);
04/11/23 Linguagem C 10
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;
04/11/23 Linguagem C 11
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);
}
04/11/23 Linguagem C 12
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;
04/11/23 Linguagem C 13
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;
04/11/23 Linguagem C 14
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ódigos-linkeditáveis criados, fornecidos com os compiladores ou adquiridos;
04/11/23 Linguagem C 15
Compiladores e InterpretadoresCiclo de desenvolvimento
Início
Editar códigofonte
Compilar
Erros decompilação?
Linkeditar
Erros delinkedição?
Executarprograma
Erros detempo de
Execução?
Fim
Não
Não
Não
Sim
Sim
Sim
04/11/23 Linguagem C 16
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; }
04/11/23 Linguagem C 17
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 }
04/11/23 Linguagem C 18
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.:– #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; – }
04/11/23 Linguagem C 19
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;
04/11/23 Linguagem C 20
Palavras Chaves
auto double int struct break else long switch case enum * register typedef char extern return union const * float short unsigned continue for signed * void * default goto!! Sizeof volatile* do if static while * ANSI
04/11/23 Linguagem C 21
Mapa de Memória em C
Pilha
Heap
Variáveis Globais
Código do Programa
04/11/23 Linguagem C 22
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)
04/11/23 Linguagem C 23
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;
04/11/23 Linguagem C 24
Tipos de Dados
• Tipos Básicos de Dados Tipo Tamanho em bits Faixa char 8 0 a 255
int 16(depende) -32768 a 32767
float 32 -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 0 sem valor
04/11/23 Linguagem C 25
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
04/11/23 Linguagem C 26
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;
04/11/23 Linguagem C 27
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
04/11/23 Linguagem C 28
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
04/11/23 Linguagem C 29
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
04/11/23 Linguagem C 30
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;
04/11/23 Linguagem C 31
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);
04/11/23 Linguagem C 32
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);
}
04/11/23 Linguagem C 33
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);
}
}
04/11/23 Linguagem C 34
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;}
04/11/23 Linguagem C 35
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); }
04/11/23 Linguagem C 36
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)
04/11/23 Linguagem C 37
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;
04/11/23 Linguagem C 38
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; }
04/11/23 Linguagem C 39
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)
04/11/23 Linguagem C 40
Função printf()
• Códigos Especiais: \n nova linha \r retorno do cursor \t tabulador \” aspas \\ barra
04/11/23 Linguagem C 41
Função printf()
• Códigos de impressão formatada %c Caractere %d, %i Inteiros com sinal %e Notação científica (e minúsculo) %E Notação científica (E maiúsculo) %f Ponto flutuante %g usa %e ou %f, que for mais curto %G usa %E ou %f, que for mais curto
04/11/23 Linguagem C 42
Função printf()
• Códigos de impressão formatada %o Octal %s String %u Inteiros sem sinal %x Hexadecimal (letras minúsculas) %X Hexadecimal (letras maiúsculas) %% Escreve o símbolo
04/11/23 Linguagem C 43
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; }
04/11/23 Linguagem C 44
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
04/11/23 Linguagem C 45
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;
04/11/23 Linguagem C 46
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
04/11/23 Linguagem C 47
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);
04/11/23 Linguagem C 48
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);
04/11/23 Linguagem C 49
Função scanf()
• Especificadores de formato %c lê caracter
%d lê inteiro
%e, %f lê ponto flutuante
%o lê octal
%s lê string
%x lê hexadecimal
%g lê ponto flutuante
%u lê inteiro sem sinal
04/11/23 Linguagem C 50
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);• }
04/11/23 Linguagem C 51
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.
04/11/23 Linguagem C 52
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; }
04/11/23 Linguagem C 53
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.
Informe sua idade25
Sua fase é adulta
Linhas (1 => 24)
Colunas (1 => 80)
04/11/23 Linguagem C 54
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");
Recommended