ltp-ivslago/ltp4-cap1.pdf · compiladores sistemas operacionais. prof. dr. silvio do lago pereira 6...
TRANSCRIPT
![Page 1: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/1.jpg)
LTP-IV
Prof. Dr. Silvio do Lago PereiraDepartamento de Tecnologia da Informação
Faculdade de Tecnologia de São Paulo
![Page 2: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/2.jpg)
Prof. Dr. Silvio do Lago Pereira 2
Contato
� e-mail: [email protected]
� home page: www.ime.usp.br/~slago
�apostila: Linguagem C - Curso Completo
�compilador: Turbo C 2.0
�slides das aulas
�enunciados dos exercícios de programação
![Page 3: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/3.jpg)
Prof. Dr. Silvio do Lago Pereira 3
Curso
� Ementa: E/S básica, estruturas de controle, funções,
vetores, estruturas, ponteiros e arquivos.
� Avaliação:
�Três provas (P1, P2 e P3)
�Três exercícios de programação (EP1, EP2 e EP3)
�Uma prova substitutiva
�Média: [P1 + P2 + P3 + (EP1+EP2+EP3)/3] / 4
� Aprovação requer média igual ou superior a 7.0.
![Page 4: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/4.jpg)
Introdução
![Page 5: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/5.jpg)
Prof. Dr. Silvio do Lago Pereira 5
Linguagem C
� Dennis Ritchie, Laboratórios Bell, 1972.
� BCPL → B → C (→ C++, JAVA, C#)
� Características: portátil, flexível e eficiente.
� Aplicabilidade
� jogos
�editores
�simuladores
�compiladores
�sistemas operacionais
![Page 6: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/6.jpg)
Prof. Dr. Silvio do Lago Pereira 6
Turbo C
� O Turbo C é um produto da Borland International que reúne num só ambiente:
�editor
�compilador
� linkeditor
�depurador
� Principais comandos:
�F2 para salvar o código-fonte.
�CTRL+F9 para compilar, linkeditar e executar.
�ALT+X para finalizar a execução do Turbo C.
![Page 7: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/7.jpg)
Prof. Dr. Silvio do Lago Pereira 7
Estrutura básica de um programa
� Todo programa deve ter exatamente uma função
main(), a partir da qual inicia-se sua execução.
Comentários: /* ... */
Diretivas: #include ...
Funções: main() {...}
![Page 8: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/8.jpg)
Prof. Dr. Silvio do Lago Pereira 8
Estrutura básica de uma função
main()
{
}
cabeçalho da função
corpo da função
declarações
instruções
![Page 9: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/9.jpg)
Prof. Dr. Silvio do Lago Pereira 9
Um exemplo: o problema
� Problema: uma pessoa é obesa se seu índice de massa corpórea é superior a 30, tal índice é a razão entre seu
peso e o quadrado da sua altura.
� Análise:
�entrada: peso e altura da pessoa.
�saída: uma mensagem informando se a pessoa estáobesa ou não.
�processamento: calcular o índice e, conforme o seu valor, selecionar uma mensagem apropriada.
![Page 10: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/10.jpg)
Prof. Dr. Silvio do Lago Pereira 10
Um exemplo: o programa
/* OBESO.C - decide se pessoa está obesa */
#include <stdio.h>#include <conio.h>#include <math.h>
#define LIMITE 30
main() {float peso, altura, imc;
clrscr();printf("\nQual o seu peso e altura?");scanf("%f %f", &peso, &altura);
imc = peso/pow(altura,2);
printf("\nSeu i.m.c. é %.1f", imc);
if( imc<=LIMITE ) printf("\nVocê não está obeso!");else printf("\nVocê está obeso!");
getch();}
/* OBESO.C - decide se pessoa está obesa */
#include <stdio.h>#include <conio.h>#include <math.h>
#define LIMITE 30
main() {float peso, altura, imc;
clrscr();printf("\nQual o seu peso e altura?");scanf("%f %f", &peso, &altura);
imc = peso/pow(altura,2);
printf("\nSeu i.m.c. é %.1f", imc);
if( imc<=LIMITE ) printf("\nVocê não está obeso!");else printf("\nVocê está obeso!");
getch();}
![Page 11: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/11.jpg)
Prof. Dr. Silvio do Lago Pereira 11
Tipos de dados
char
int
float
double
void
TIPO
unsigned char
unsigned int
long int
1 byte
2 bytes
4 bytes
8 bytes
0 bytes
ESPAÇO
1 byte
2 bytes
4 bytes
ESCALA
−−−−128 a ++++ 127
−−−−32768 a ++++ 32767
3.4e−−−−38 a 3.4e++++38
1.7e−−−−308 a 1.7e++++308
nenhuma
0 a 255
0 a 65535
−−−−2147483648 a ++++2147483647
![Page 12: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/12.jpg)
Prof. Dr. Silvio do Lago Pereira 12
...
int idade;
char sexo;
...
scanf(“%d %c”, &idade, &sexo);
...
...
int idade;
char sexo;
...
scanf(“%d %c”, &idade, &sexo);
...
Entrada de dados formatada
scanf(“formatação”, arg1, arg2, ..., argn);
especificadores de formato endereços de memória
![Page 13: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/13.jpg)
Prof. Dr. Silvio do Lago Pereira 13
Especificadores de formato
Especificador Representa
%c um único caracter
%o, %d, %x inteiro em octal, decimal ou hexa
%u inteiro sem sinal em decimal
%ld inteiro longo em decimal
%f, %lf real de precisão simples ou dupla
%s cadeia de caracteres (string)
%% sinal de porcentagem
![Page 14: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/14.jpg)
Prof. Dr. Silvio do Lago Pereira 14
int r;
printf(“\nRaio %d e perímetro %.1f”,r,6.28*r);
int r;
printf(“\nRaio %d e perímetro %.1f”,r,6.28*r);
Saída de dados formatada
printf(“formatação”, arg1, arg2, ..., argn);
especificadores de formato
(iniciam com %)
caracteres de controle
(iniciam com \ )
caracteres comuns
(demais)
valores
substituído pelo argumento
correspondente
produz efeito especial
exibido literalmente
![Page 15: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/15.jpg)
Prof. Dr. Silvio do Lago Pereira 15
Caracteres de controle
caracter
\a
\b
\f
\n
\r
\t
\”
efeito
soa o alarme
o cursor retrocede uma coluna
alimenta página na impressora
o cursor avança para uma nova linha
o cursor retrocede à primeira coluna
o cursor avança para a próxima tabulação
exibe uma aspa
\’
\\
exibe um apóstrofo
exibe uma barra invertida
![Page 16: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/16.jpg)
Prof. Dr. Silvio do Lago Pereira 16
Formatação de campos para exibição
int a = 678;int a = 678;int a = 678;int a = 678;
float b = 12.3416;float b = 12.3416;float b = 12.3416;float b = 12.3416;
printf("printf("printf("printf("\\\\nnnn%5d%5d%5d%5d””””, a); , a); , a); , a); →→→→ ��������678678678678
printf("printf("printf("printf("\\\\nnnn%06d%06d%06d%06d””””, a); , a); , a); , a); →→→→ 000678000678000678000678
printf("printf("printf("printf("\\\\nnnn%7.3f%7.3f%7.3f%7.3f””””, b); , b); , b); , b); →→→→ ����12.34212.34212.34212.342
printf("printf("printf("printf("\\\\nnnn%7.2f%7.2f%7.2f%7.2f””””, b); , b); , b); , b); →→→→ ��������12.3412.3412.3412.34
%%%% <tamanho do campo><tamanho do campo><tamanho do campo><tamanho do campo> dddd
%%%% 0000<tamanho do campo><tamanho do campo><tamanho do campo><tamanho do campo> dddd
%%%% <tamanho do campo><tamanho do campo><tamanho do campo><tamanho do campo> .... <n<n<n<núúúúmero de casas>mero de casas>mero de casas>mero de casas> ffff
![Page 17: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/17.jpg)
Prof. Dr. Silvio do Lago Pereira 17
Operadores aritméticos
� Operadores: +, -, *, /, %
� Divisão:
7 / 2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5
� Resto:
7 % 2 = 1
7.0 % 2 = erro
![Page 18: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/18.jpg)
Prof. Dr. Silvio do Lago Pereira 18
Exercício 1.3.
#include <stdio.h>
#include <conio.h>
main() {
float a, b, m;
clrscr();
printf("\nNotas? ");
scanf("%f %f", &a, &b);
m = (a+b)/2;
printf("\nMedia = %.1f", m);
getch();
}
#include <stdio.h>
#include <conio.h>
main() {
float a, b, m;
clrscr();
printf("\nNotas? ");
scanf("%f %f", &a, &b);
m = (a+b)/2;
printf("\nMedia = %.1f", m);
getch();
}
Dadas as duas notas de um aluno, informe a sua média.
![Page 19: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/19.jpg)
Prof. Dr. Silvio do Lago Pereira 19
Exercício 1.4.
#include <stdio.h>#include <conio.h>
main() {float d, c, m;
clrscr();
printf("\nDistância? "); scanf("%f",&d);
printf("\nCombustível? "); scanf("%f",&c);
m = d/c;
printf("\nConsumo = %.1f km/l", m);
getch();
}
#include <stdio.h>#include <conio.h>
main() {float d, c, m;
clrscr();
printf("\nDistância? "); scanf("%f",&d);
printf("\nCombustível? "); scanf("%f",&c);
m = d/c;
printf("\nConsumo = %.1f km/l", m);
getch();
}
Dadas uma distância e o total de combustível gasto para percorrê-
la, informe o consumo médio do veículo.
![Page 20: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/20.jpg)
Prof. Dr. Silvio do Lago Pereira 20
Exercício 1.5.
Dado um caracter exiba seu código ASCII em octal, decimal e hexa.
#include <stdio.h>
#include <conio.h>
main() {
char a;
clrscr();
printf("\nCaracter? ");
scanf("%c",&a);
printf("\nOctal\tDecimal\tHexadecimal");
printf("\n%o\t%d\t%x", a, a, a);
getch();
}
#include <stdio.h>
#include <conio.h>
main() {
char a;
clrscr();
printf("\nCaracter? ");
scanf("%c",&a);
printf("\nOctal\tDecimal\tHexadecimal");
printf("\n%o\t%d\t%x", a, a, a);
getch();
}
![Page 21: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/21.jpg)
Prof. Dr. Silvio do Lago Pereira 21
Exercício 1.6.
Dada uma temperatura em oF, informe o correspondente em oC.
C = (F-32)*(5/9)
#include <stdio.h>#include <conio.h>#define GRAU 248
main() {float f, c;
clrscr();
printf("\nTemperatura %cF? ", GRAU);scanf("%f",&f);
c = (f-32)*(5/9.0);
printf("\n%.1f%cF = %.1f%cC",f,GRAU,c,GRAU);
getch();}
#include <stdio.h>#include <conio.h>#define GRAU 248
main() {float f, c;
clrscr();
printf("\nTemperatura %cF? ", GRAU);scanf("%f",&f);
c = (f-32)*(5/9.0);
printf("\n%.1f%cF = %.1f%cC",f,GRAU,c,GRAU);
getch();}
![Page 22: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/22.jpg)
Prof. Dr. Silvio do Lago Pereira 22
Exercício 1.7.
Dadas as medidas dos catetos de um triângulo retângulo, informe
a medida da hipotenusa.
#include <stdio.h>#include <conio.h>#include <math.h>
main() {float a, b, h;
clrscr();
printf("\nCatetos? ");scanf("%f %f",&a, &b);
h = sqrt(pow(a,2)+pow(b,2));
printf("\nHipotenusa = %.1f", h);
getch();}
#include <stdio.h>#include <conio.h>#include <math.h>
main() {float a, b, h;
clrscr();
printf("\nCatetos? ");scanf("%f %f",&a, &b);
h = sqrt(pow(a,2)+pow(b,2));
printf("\nHipotenusa = %.1f", h);
getch();}
![Page 23: LTP-IVslago/ltp4-cap1.pdf · compiladores sistemas operacionais. Prof. Dr. Silvio do Lago Pereira 6 Turbo C O Turbo C éum produto da Borland International que reúne num sóambiente:](https://reader034.vdocuments.pub/reader034/viewer/2022050214/5f608ba2f6d91227a454de3d/html5/thumbnails/23.jpg)
Fim