Introdução a Linguagem de
Programação C
Baseada na apresentação de
Daniela G. Trevisan - [email protected]
Breve Histórico



Em 1973 Dennis Ritchie reescreveu o sistema
operacional UNIX em uma linguagem de alto
nível (Ling. C).
Surgem diversas implementações utilizando C,
porém os códigos gerados eram incompatíveis.
ANSI (American National Standard Institute),
em 1983 padronizou a ling. C.
Introdução Linguagem C
C comparado a outras linguagens

Devemos entender Nível Alto como sendo a
capacidade da linguagem em compreender instruções
escritas em “dialetos” próximos do inglês (Ada e
Pascal, por exemplo) e Nível Baixo para aquelas
linguagens que se aproximam do assembly, que é a
linguagem própria da máquina, compostas por
instruções binárias e outras incompreensíveis para o
ser humano não treinado para este propósito.
Infelizmente, quanto mais clara uma linguagem for
para o humano (simplicidade >) mais obscura o será
para a máquina (velocidade <).
Introdução Linguagem C
C comparado a outras linguagens
Nível Baixo
Nível Alto
Nível Médio
Clareza
Velocidade
Assembler
C
Basic
Pascal
COBOL
Introdução Linguagem C
Ada
Modula -2
Aplicações escritas em C

Sistema Operacional: UNIX

Planilhas: 1,2,3 e Excel

Banco de Dados: dBase III, IV e Access (
gerenciador de base de dados).

Aplicações Gráficas: Efeitos Especiais de
filmes como Star Trek e Star War.
Introdução Linguagem C
Características da Linguagem C





Portabilidade entre máquinas e sistemas
operacionais.
Alia características de linguagens de alto e
baixo nível (liberdade ao programador).
Programas Estruturados.
Total interação com o Sistema Operacional.
Código compacto e rápido, quando comparado
ao código de outras linguagem de
complexidade análoga.
Introdução Linguagem C
Características da Linguagem C


C é uma linguagem compilada: lê todo
o código fonte e gera o código objeto
(ling. de máquina) uma única vez.
Linguagens Interpretadas: lê o código
fonte, traduz e executa cada vez que o
programa for executado.
Introdução Linguagem C
Detalhes Importantes



Sempre que o código fonte for alterado
ele deve ser novamente compilado.
C é “case senitive”
Deve-se listar antecipadamente todas a
as variáveis utilizadas no programa.
Introdução Linguagem C
Palavras reservadas

São palavras que têm um significado
especial para a linguagem.
auto, break, case, if, for, while, begin, end,
continue, return, const,....

C entende tais palavras apenas em
letras minúsculas
Introdução Linguagem C
Bibliotecas



Conjunto de funções para realizar tarefas
específicas.
Biblioteca padrão C - ANSI - funções básicas.
As primeiras linhas do programa indicam as
bibliotecas utilizadas
#include “minha_biblioteca.h” ou
#include <minha_biblioteca.h>
Introdução Linguagem C
Estrutura de um programa C
/* Primeiro Programa em C */
#include <stdio.h>
main()
{
printf(“Meu primeiro programa em C\n”);
}
Introdução Linguagem C
Vamos utilizar o TC – ambiente DOS
Introdução Linguagem C
Pressionar <ALT+ letra do menu>
Introdução Linguagem C
No DOS o mouse não funciona
Introdução Linguagem C
<ALT + F5> permuta telas
Introdução Linguagem C
Estrutura de um programa C
/* Primeiro Programa em C */ comentários
#include <stdio.h> /*biblioteca de E/S */
main() /*função principal – inicio do programa*/
{ /*marca início da função*/
printf(“Meu primeiro programa em C\n”);
/*função para escrever na tela*/
} /*marca fim da função*/
Introdução Linguagem C
Compilando e Executando

Para compilar: (verifica a sintaxe)
<ALT + C> Compile to OBJ <ENTER>

Para compilar e gerar executável:
<ALT + C> Compile to OBJ <ENTER>

Executando:
<ALT + R> Run ou Trace over(F7) <ENTER>
OBS:
Se o nome do executável não for informado o default é NONAME.C,
e ficará salvo em OPTIONS  Output_directory (default)
Introdução Linguagem C
Variável


Variável: “objeto” que pode assumir diversos
valores;
espaço de memória de um certo tipo de dado
associado a um nome para referenciar seu
conteúdo
Main ( )
{
int idade;
idade = 30;
printf (“ A idade é : %d”, idade);
}
Introdução Linguagem C
Nomes de Variáveis


quantos caracteres quiser (32);
comece com letras ou sublinhado:
Seguidos de letras, números ou sublinhados

C é sensível ao caso:
peso

<>
Peso
<>
pEso
não podemos definir um identificador com o
mesmo nome que uma palavra chave
auto static extern int long if while do ......
Introdução Linguagem C
Declaração de Variáveis

Instrução para reservar uma quantidade
de memória para um certo tipo de dado,
indicando o nome pelo qual a área será
referenciada
>> tipo nome-da-variável; ou
>> tipo nome1, nome2,...,nomen
EX: char nome;
int idade, num;
Introdução Linguagem C
Tipos Básicos de Dados


determinar um conjunto de valores e as possíveis
operações realizadas sobre os mesmos ;
informa a quantidade de memória (bytes);
tipo
char
int
float
double
bytes
1
2
4
8
escala
-128 a 127
-32.768 a 32.767
3.4e-38 a 3.4e+38
1.7e-308 a 1.7e+308
Introdução Linguagem C
Diferentes tipos de inteiros
Long ou Long int
Unsigned Char
Unsigned int
(4 bytes)
(0 a 255)
(0 a 65.535)
obs: int tem sempre o tamanho da
palavra da máquina
Introdução Linguagem C
Programa Exemplo – Tipos de Dados
e Variáveis
#include <stdio.h>
main( )
{
int soma=10;
float money=2.21;
char letra= ´A´;
double pi=2.01E6;
printf (“valor da soma = %d\n”, soma);
printf (“Valor de Money = %f\n”, money);
printf(“Valor de Letra = %c\n”, letra);
printf(“Valor de Pi = %e\n”, pi);
}
Introdução Linguagem C
Comandos básicos
Entrada
de Dados
Processamento
de dados
Instruções de E/S
Introdução Linguagem C
Saída
de
Dados
Intruções de E/S – Scanf ( )

Leitura de dados tipados via teclado

Scanf
(“string de controle”, lista de argumentos);
Exemplo:
scanf(“%d”,&idade);
OBS: Para seqüência
de caracteres (%s), o
caracter & não deverá
ser usado.
Introdução Linguagem C
Comandos de E/S – printf ( )

Apresentação de dados no monitor

printf(“string de controle”, lista de argumentos);
Exemplo:
printf (“Digite a sua idade:\n”);
scanf (“%d”, &idade);
printf(“Sua idade é: %d”, idade);
Introdução Linguagem C
String de controle
%c caracter
%d inteiro
%e número ou notação científica
%f  ponto flutuante
%o  octal
%x hexadecimal
%s string (cadeia de caracteres)
%lf  double
Introdução Linguagem C
Exemplo strings de controle
#include <stdio.h>
main ( )
{
char a ;
printf ( “digite um caracter” );
scanf ( “ % c”, &a );
printf (“ \n %c = %d em decimal”, a, a);
printf (“%o em octal, %x em hexadecimal”, a, a);
}
Digitando m:
m = 109 em decimal, 155 em octal, 6d em hexadecimal
Introdução Linguagem C
Operador de Endereço &


um endereço de memória é o nome que o
computador usa para identificar uma variável
toda variável ocupa uma área de memória e seu
endereço é o primeiro byte por ela ocupado
Ex :
inteiro 2 bytes
float  4 bytes
char 1 byte
Introdução Linguagem C
Operador de Endereço &

Quando usamos & precedendo uma
variável estamos falando do endereço
desta variável na memória
Ex:
Saída: valor = 2, endereço = 1230
Main ( )
Varia conforme memória da máquina
{
int num;
num = 2;
printf (“valor = %d, endereço = %Iu”, num,&num);
}
Introdução Linguagem C
Caracteres Especiais
\n
\r
\t
\b
\”
\\
nova linha
enter
tabulação (tab)
retrocesso
aspas
barra
Introdução Linguagem C
Formatando as saídas - printf

é possível estabelecer o tamanho mínimo para a
impressão de um campo
#include <stdio.h>
main ( )
{
printf (“os alunos são %2d \n”, 350);
printf (“os alunos são %4d \n”, 350);
printf (“os alunos são %5d \n”, 350);
}
Saída:
os alunos são 350
os alunos são 350
os alunos são
350
Introdução Linguagem C
Formatando as saídas - printf
#include <stdio.h>
main ( )
{
printf (“ %3.1f \n”, 3456.78);
printf (“ %10.3f \n”, 3456.78);
}
Saída:
3456.8
3456.780
Introdução Linguagem C
Programando – Exercício 1

Faça um programa para ler e escrever na tela o
seu nome e a sua idade.
#include <stdio.h>
main( )
{
int idade;
char nome[30];
printf (“Digite o seu nome:\n”);
scanf(“%s”, nome);
printf (“Digite a sua idade:\n”);
scanf (“%d”, &idade);
printf(“A idade do(a) %s é %d”,nome, idade);
}
Introdução Linguagem C
Programando – Exercício

Faça um programa para ler e escrever
na tela os seguintes dados:





Nome
Endereço
Telefone
Cidade
Cep
Introdução Linguagem C
Operadores Aritméticos
Operador
+
*
/
%
-++
Ação
Adição
Multiplicação
Divisão
Resto da divisão inteira
Subtração (unário)
Decremento
Incremento
Introdução Linguagem C
Operadores Relacionais e
Lógicos
Operador
Ação
>
Maior que
>=
Maior ou igual que
<
Menor que
<=
Menor ou igual que
==
Igual a
!=
Diferente de
&&
Condição “E”
||
Condição “OU”
!
Não
Introdução Linguagem C
Operadores - Observação

Em C o resultado da comparação será
ZERO se resultar em FALSO e
DIFERENTE DE ZERO no caso de
obtermos VERDADEIRO num teste
qualquer.
Introdução Linguagem C
Operadores - Exemplo
#include <stdio.h>
main ( )
Saída: Verd.=1 Falso = 0
{
int verdadeiro, falso;
verdadeiro = (15 < 20);
falso = (15 == 20);
printf(“Verd.= %d,Falso= %d”,
verdadeiro, falso);
}
Introdução Linguagem C
Comparações e Testes

Observemos antes de mais nada que
++x é diferente de x++!
Se
x = 10;
y = ++x;
/* x=x+1;
então
x = 11 e
y = 11
y=x; */
porém Se
x = 10;
y = x++;
/* y=x;
x=x+1 */
então
x = 11 e
y = 10
Introdução Linguagem C
Programa Exemplo – Pre/Pos
Incremento
#include<stdio.h>
main()
{
int cont = 0, loop;
loop=++cont;
printf(“LOOP=%d, CoNt=%d\n”, loop, cont);
loop=cont++;
printf(“Loop=%d, Cont=%d\n”, loop, cont);
}
Quais são as saídas deste programa ?
Introdução Linguagem C
Comparações e Testes
Se
x = 1;
y = 2;
printf(“%d == %d e’ %d\n”, x, y, x==y )
Qual seria a saída deste comando?
resultaria em 1 == 2 0
(pois a expressão é falsa)
Introdução Linguagem C
Conversões de Tipos



Quando forem misturadas variáveis de diferentes tipos, o compilador C
converterá os operandos para o tipo de operando maior, de acordo
com as regras descritas a seguir:
1-Todo char e short int é convertido para int. Todo float é convertido
para double.
2-Para os demais pares de operandos valem as seguintes regras em
seqüência:

2.1- Se um operando for long double, o outro também o será.
 2.2- Se um operando for double, o outro também o será.
 2.3- Se um operando for long, o outro também o será.
 2.4- Se um operando for unsigned, o outro também o será.
Introdução Linguagem C
Conversões de Tipos - NOTA

Nota: Devemos observar que o compilador C é bastante flexível e
pouco vigilante, comportando-se de maneira muito diferente de um
compilador Clipper ou Pascal, sempre vigilantes com relação aos tipos
das variáveis. De fato aqueles compiladores podem gerar executáveis
misturando tipos, porém a ocorrência de erros de execução é quase
inevitável. Ao contrário destes compiladores, os compiladores C
“ajeitam” as coisas para o programa funcionar da “melhor maneira
possível”, o que não significa em hipótese alguma que os resultados
serão os esperados por programadores “relapsos”. Assim esta boa
característica dos compiladores C, pode transformar-se numa
autêntica “bomba relógio” para programas não muito bem
elaborados.
Introdução Linguagem C
Variável String → Só Dicas



matriz do tipo char terminada pelo caractere null ‘\0’
cada caractere de um string pode ser acessado
individualmente
vetor de tamanho n  string de tamanho ( n-1 )
Ex:
char string[10] = “exemplo” ;
char string[10] = { “exemplo” };
char string[10] = { ‘e’, ‘x’, ‘e’, ‘m’, ‘p’, ‘l’, ‘o’, ‘\0’ };
printf ( “%s”, string );
printf ( “%c”, string [ 0 ] );
Introdução Linguagem C
Lendo Strings

scanf : lê o string até que um branco seja
encontrado
Ex:
main ( )
{
char nome[40];
Saída:
Digite seu nome: Jose Maria
Bom dia Jose
printf ( “Digite seu nome: “ );
scanf ( “%s”, &nome[ 0 ] );
//scanf ( “%s”, nome );
printf ( “Bom dia %c”, nome[0] );
}
Introdução Linguagem C
Lendo Strings MUDAR

Gets
lê caracteres até encontrar ‘\n’
substitui ‘\n’ por ‘\0’
Ex:
main ( )
{
char nome[40];
Saída:
Digite seu nome: Jose Maria
Bom dia Jose Maria
printf ( “Digite seu nome: “ );
gets ( &nome[ 0 ] ); // ou gets(nome);
printf ( “Bom dia %s”, nome );
}
Introdução Linguagem C
Download

Apresentação sobre linguagem C em PwPt