47
Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - [email protected]

Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - [email protected]

Embed Size (px)

Citation preview

Page 1: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução a Linguagem de Programação C

Baseada na apresentação de

Daniela G. Trevisan - [email protected]

Page 2: 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.

Page 3: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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 <).

Page 4: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 5: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 6: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 7: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 8: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 9: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 10: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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>

Page 11: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

Estrutura de um programa C

/* Primeiro Programa em C */

#include <stdio.h>

main()

{

printf(“Meu primeiro programa em C\n”);

}

Page 12: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

Vamos utilizar o TC – ambiente DOS

Page 13: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

Pressionar <ALT+ letra do menu>

Page 14: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

No DOS o mouse não funciona

Page 15: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

<ALT + F5> permuta telas

Page 16: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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*/

Page 17: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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)

Page 18: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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);}

Page 19: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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 ......

Page 20: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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;

Page 21: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 22: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 23: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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);

}

Page 24: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

Comandos básicos

Instruções de E/S

Entrada de

Dados

Processamento de dados

Saída de

Dados

Page 25: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 26: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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);

Page 27: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 28: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 29: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 30: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 31: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

Introdução Linguagem C

Caracteres Especiais

\n nova linha \r enter\t tabulação (tab)\b retrocesso\” aspas\\ barra

Page 32: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 33: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 34: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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);

}

Page 35: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 36: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 37: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 38: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 39: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 40: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 41: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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 ?

Page 42: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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)

Page 43: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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á.

Page 44: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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.

Page 45: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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 ] );

Page 46: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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

Page 47: Introdução a Linguagem de Programação C Baseada na apresentação de Daniela G. Trevisan - daniela@cesup.ufrgs.br

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