03 - A Linguagem C
Programação II 03 - A Lingua Linguagem gem C Prof. Glécio Albuquerque www.glecioalbuquerque.com
[email protected] [email protected]
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
Histórico • Projetada e implementada por • Denis Ritchie e Brian W. Kerninghan do
AT&T T&T Bell Laboratories Laboratories em em 1972 • A • Derivou das linguagens • ALGOL 68 • CPL (Combined Programming Language) • BCPL (Basic CPL) • B
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
Características • Linguagem para propósitos gerais • General Purpose Language • Comercial • Científica • Engenharia • Produção • Sistemas operacionais (Unix, Windows) • Linguagens de Programação (Java) • Editores de Textos Textos • Interfaces de comunicação
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Características • Não se trata de uma linguagem : • De alto nível como Pascal • Nem de baixo nível como Assembler • Reúne as vantagens apresentadas pelos dois tipos • Classificada como linguagem de Nível Médio • Portável • Uso em vários sistemas operacionais / plataformas • Flexibilidad Flexibilidade e é outro fator importante
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Características • Gera programas velozes pois são compilados e não
interpretados • É uma linguagem estruturada • Há divisão em módulos • Poderosa (É um Desafio) • Requer mais do programador • Permite controle absoluto do hardware • Manipulação de bits, bytes e endereços • O Código objeto é um texto em Assembly
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Características • O Assembler gera o código de máquina na plataforma
desejada • Substitui o Assembly • É sensível ao caso (Case Sensitive) • printf é diferente de Printf • cont difere de Cont e de CONT
• Todo comando termina com
;
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Identificadores • Os dados são colocados na memória RAM em forma
de variáveis • Cada variável deve ser declarada com o tipo e o nome para identificaçã identificação o • Nome de variável é chamado de identificador • Restrições • Primeiro caracter sempre letra, sublinhado • Demais caracteres : letras números e sublinhado (under_line) • Nunca deve ser usado palavras reservadas
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Identificadores • Identificadores corretos • soma • numero • media • Identificadores inválidos • 2soma • numero!3 • media...aritmetica • média • media geometrica • Use nomes significativ significativos os • Não use nomes como kx3y4 (o que significará ?)
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Tipos de Dados • São também chamados de : • Tipos primitivos • Escalares • Cinco tipos básicos C Comp Total, p 17 • char • int • float • double • void
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Tipos de Dados Tipo char
08/08/16
10
Tam Tam bits Byte 8 1
Obs 0 a 255 ‘ ’, ‘a’, ‘1’
int
32
4
-2.147.483.648 a 2.147.483.647
float
32
4
6 dígitos precisão
double
64
8
15 dígitos de precisão
void
-
-
1 , 18, 524 1594.253 1594.253 Sem valor
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Tipos de Dados • Não existe o tipo primitivo String • Deve-se criar um vetor de caracteres (char) • char variavel [n]; • char nome [30]; • As strings aparecem aparecem entre aspas “” (“Joao”) (“Joao”) • Não há o tipo booleano True/False • O falso é 0 (zero) e o verdadeiro é 1 (um) • O tipo void será estudado futuramente
03 - A Linguagem C
Tipos de Dados • Declaração de variáveis (criação) • tipo nome_variavel; • tipo nome_variavel [= expressao]; • Exemplos : • char letra; • char letra = ‘a’; • int idade_funcion idade_funcionario; ario; • int soma = 0; • float media; • double pib; • char nome_funcionario [30];
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Símbolos • Comentários • /* .... */ Para comentário em várias linhas. • // Para um comentário na mesma linha do comando.
• { ... } É o separador que delimita o programa ou
estruturas. • ; Ao final de cada comando;
03 - A Linguagem C
Operadores • Aritméticos • + (Adição) • - (Subtração) • * (Multiplicação) • / (Divisão inteira) • % (Resto da divisão) • Relacionais • > < >= <= • == (igual duplo) • != (diferente)
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
Operadores • Booleanos • && (e) • || (ou) • ! (não) • ^ (ou exclusivo - xor) • Atribuição • = (simples a = 10;) • Outros (+= -= ) • Unário • ++ (incremento) • -- (decremento) • Ternário ( ? )
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
Entrada e Saída • Provê interação com o usuário • Informando o que está pedindo dele • Recebendo sua entrada • Processando os dados • Devolvendo as respostas devidas
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Entrada e Saída • Escapes e Formatos • Símbolos especiais usados dentro de strings Saltar uma linha • \n • \t Tabulação horizontal • Formatos de entrada e saída • • • •
%c %d %f %s
char int float (%6.2f) strings
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Entrada e Saída • Saída de dados • Comando printf • Sintaxe : • printf (“texto”, [variaveis]);
• Exemplo • printf(“Tudo ok !”); • printf(“\n O valor total e %d”, total); • printf(“\t O salario e %f”, salario); • printf(“O salario e %6.2f”, salario); • printf(“O estado civil e %c \n ”, estado_civil);
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Entrada de Dados • Entrada de dados • Comando scanf • Sintaxe : • scanf(“%formato”, endereco_variavel);
• Exemplo • scanf(“%c”, • scanf(“%d”, • scanf(“%f”, • scanf(“%s”,
&estado_civil); &idade); &salario); nome);
03 - A Linguagem C
Progama Exemplo
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
Progama Exemplo
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 1) Marque os identificadores válidos ( ) TempoMédio ( ) Maior/Valor ( ) Valor Salario ( ) Contador ( ) Y1 ( ) $minimo ( ) 1Y ( ) Valor_INSS ( ) Razao-Social ( ) valorseguro 2) Escreva a linha de comando para declarar (criar) as variáveis seguintes (Dê nomes significativos) : a) Matricula b) Sexo de um funcionário c) Idade d) Salário e) Dívida externa
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 3) Faça um programa que declare e inicie variáveis armazenando a matrícula 5421, o estado civil C (Casado) e o salário 547.25. 4) Marque V ou F
( ( ( ( ( ( ( (
) int x = 42 ) int void = 14; ) x++; // eqüivale a x = x + 1; ) - -x; // eqüivale a x = x - 1; ) int x = y = z = 0; ) x += 50; // eqüivale a x = x + 50; ) x - = 22; // eqüivale a x = x - 22; ) x -= 22; /* eqüivale a x = x - 22;
03 - A Linguagem C
Exercícios 5) Avalie Avalie as expressões abaixo (0 ou 1) ( ) 1 && 0 ( ) 1 || 0 ( ) !1 ( ) !0 ( ) x && y && z && 0 ( ) x || y || z || 1 ( ) (10 > 5) 5) && && ! (10 (10 < 9 ) |||| (3 <= 4) ( ) 1^1 ( ) 0^0 ( ) 1^0
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 6) Qual o valor de x e y ao final dos trechos abaixo ? a) X = 10; . y = ++x; b) X = 10; . y = x++; 7) Faça um programa para: a) Pedir dois números inteiros e calcular a média aritmética. b) Agora use apenas duas variáveis.
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 8) A empresa ABC calcula seu lucro assim: Lucro = Receita - Despesa. Faça um Programa que que receba estes dados e calcule calcule o lucro para a empresa. Informe a resposta assim , por exemplo: O Resultado Resultado foi de 400,50 ou O Resultado foi de -652,30 Obs: Os valores estarão em Real, por exemplo, 565,52. 9) Calcule o salário líquido de um funcionário. Será informado seu nome, seu salário base e o desconto do INSS (11%, (11%, por exemplo). exemplo). Cálculo : Liquido = Base – Base * Desconto / 100.
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios Propostos 1) Pedir e subtrair 3 números. 2) Pedir e dividir dois números. 3) Uma pessoa deseja saber quantos segundos já viveu. Será informado o seu Nome e sua idade em anos (32, 22 etc). Calcule e informe a resposta desejada. 4) Calcule a velocidade média (Km/h) de um veículo. Será informado a distância percorrida e o tempo. 5) Professora Margarida calcula a média anual dos seus alunos um por um. Ela soma a nota das quatro unidades e divide por 4. Faça um Programa para fazer isso para ela. A resposta deverá sair assim, por exemplo, :"Pedrinho : Média ", 8. Anotas podem podem ter 1 casa decimal.
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios Propostos 6) Calcule a área de um triângulo. Será dado a base e a altura. 7) Um motorista anota a marcação do odômetro do seu veículo antes (Km1) e após uma viagem (Km2), bem como o número de litros (litros) de combustível gastos. Faça um programa que leia os 3 dados acima, o preço do litro de combustível (preco), a capacidade do tanque (capacidade) e mostre: a) Quilometragem rodada (Km2- Km1). b) Consumo : quantos quilômetros por litro faz o veículo (Quilometragem/litros). c) Autonomia Autonomia do veículo (Consumo * capacidade). d) Custo da viagem (litros * preco).
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 1) Responda verdadeiro ou falso : ( ) Nem todas as linguagens são para programadores. Como exemplo COBOL, e BASIC. O C é uma linguagem para programadores. ( ) C é a linguagem mais popular popular entre os programadores programadores profissionais ( ) A linguagem BCPL ainda está em uso ( ) O C foi foi padron padronizado izado em 1983 1983 pelo ANSI (Amer (American ican Nati National onal Stand Standard ard Institute) ( ) C não verifica verifica tipos tipos de variáveis em tempo de execução execução ( ) C possui apenas 32 palavras chaves enquanto linguagens como BASIC possuem mais de 100 palavras reservadas ( ) C não é compatível com o C++ ( ) O Compilador C gera códigos enxutos e velozes
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Exercícios 2) C é classificada com uma linguagem nível médio. Isto significa que ela é menos poderosa, difícil de usar e menos desenvolvida ? Explique sua resposta. 3) Por que o C é classificado como uma linguagem portável ? 4) C desenvolveu um importante sistema operacional na década de 70. Qual é este sistema e qual a sua importância nos dias atuais? 5) Por que a linguagem C requer mais do programador ?
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Bibliografia • Sebesta, Robert W
Conceitos de Linguagens de Programação, Bookman, 2000 • Schildt, Herbet C, Completo Comp leto e Total, Makron Books • Curso IBM de Programação Programação.. Editora PLANETA do Brasil Ltda, São Paulo, 1999 • Civita, Victor – Enciclopédia Prática de
São Paulo-SP, Nova Cultural, 1986.
Informática.
03 - A Linguagem C
Bibliografia Bibliografi a Recomendada • C Completo Comp leto e Total Total
www.glecioalbuquerque.com www.gle cioalbuquerque.com
03 - A Linguagem C
www.glecioalbuquerque.com www.gle cioalbuquerque.com
Obrigado!!!