Post on 18-Apr-2015
Introdução a Linguagem de Programação C
Baseada na apresentação de
Daniela G. Trevisan - daniela@cesup.ufrgs.br
Introdução Linguagem C
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 Médio Nível Alto
Velocidade Clareza
Assembler C
COBOL
Basic Pascal Ada
Modula -2
Introdução Linguagem C
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 chaveauto 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,...,nomenEX: 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 bytes escala
char 1 -128 a 127 int 2 -32.768 a 32.767 float 4 3.4e-38 a 3.4e+38 double 8 1.7e-308 a 1.7e+308
Introdução Linguagem C
Diferentes tipos de inteiros
Long ou Long int (4 bytes)
Unsigned Char (0 a 255)
Unsigned int (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
Instruções de E/S
Entrada de
Dados
Processamento de dados
Saída de
Dados
Introdução Linguagem C
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 2bytesfloat 4 byteschar 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:Main ( ){ int num; num = 2; printf (“valor = %d, endereço = %Iu”, num,&num);}
Saída: valor = 2, endereço = 1230Varia conforme memória da máquina
Introdução Linguagem C
Caracteres Especiais
\n nova linha \r enter\t tabulação (tab)\b 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 ( ){ int verdadeiro, falso; verdadeiro = (15 < 20); falso = (15 == 20); printf(“Verd.= %d,Falso= %d”, verdadeiro, falso);}
Saída: Verd.=1 Falso = 0
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; y=x; */
então x = 11 e y = 11
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
Sex = 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];
printf ( “Digite seu nome: “ );scanf ( “%s”, &nome[ 0 ] );//scanf ( “%s”, nome ); printf ( “Bom dia %c”, nome[0] );
}
Saída:Digite seu nome: Jose MariaBom dia Jose
Introdução Linguagem C
Lendo Strings MUDAR Gets
lê caracteres até encontrar ‘\n’
substitui ‘\n’ por ‘\0’ Ex:main ( ) {
char nome[40];
printf ( “Digite seu nome: “ );gets ( &nome[ 0 ] ); // ou gets(nome);printf ( “Bom dia %s”, nome );
}
Saída:Digite seu nome: Jose Maria
Bom dia Jose Maria