Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução a programação com pascal, Notas de estudo de Informática

Apostila básica de pascal

Tipologia: Notas de estudo

2010

Compartilhado em 04/06/2010

MarioTTempo
MarioTTempo 🇧🇷

5

(1)

3 documentos

1 / 69

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Centro Universitário de João Pessoa
BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO
APOSTILA DE
INTROD. À PROGRAMAÇÃO
COM PASCAL
PROF. CÂNDIDO EGYPTO
Institutos Paraibanos de Educação
Agosto / 2003
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45

Pré-visualização parcial do texto

Baixe Introdução a programação com pascal e outras Notas de estudo em PDF para Informática, somente na Docsity!

Centro Universitário de João Pessoa

BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO

APOSTILA DE

INTROD. À PROGRAMAÇÃO

COM PASCAL

PROF. CÂNDIDO EGYPTO

Institutos Paraibanos de Educação

Agosto / 2003

SUMÁRIO

1. INTRODUÇÃO

Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado , isto é, que seja transcrito para uma linguagem que o com- putador possa entender, direta ou indiretamente.

1.1. LINGUAGENS DE PROGRAMAÇÃO

Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável. Por- tanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo comp utador.

Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema biná- rio), que representam impulsos elétricos, ausente e presente.

Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).

Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina.

1.2. TRADUTORES

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.

COMPILADOR - traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equiva- lente escrito em linguagem de máquina (programa-objeto).

INTERPRETADOR - traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte.

Exemplos de linguagens de programação: PASCAL, C, CLIPPER, COBOL, HTML, JAVA, etc.

EXERCÍCIOS PROPOSTOS

P1.01. Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) tradutor P1.02. Qual a diferença entre linguagem de baixo nível e linguagem de alto nível? P1.03. Explique a diferença entre compilador e interpretador.

Programa

Fonte

Ling.

Alto

Nível

COMPILADOR

Programa

Fonte

Ling.

Alto

Nível

Programa

Objeto

Ling.

Baixo

Nível

EXECUÇÃO Resultados

Programa

Fonte

Ling.

Alto

Nível

INTERPRETADOR

Programa

Fonte

Ling.

Alto

Nível

EXECUÇÃO Resultados

2. A LINGUAGEM PASCAL

A linguagem de programação PASCAL foi criada para ser uma ferramenta educacional, isto no início da década de 70 pelo Prof. Niklaus Wirth da Universidade de Zurique. Foi batizada pelo seu idealizador em homenagem ao grande ma- temático Blaise Pascal, inventor de uma das primeiras máquinas lógicas conhecidas. Foi baseada em algumas lingua- gens estruturadas existentes na época, ALGOL e PLI.

Apesar de seu propósito inicial, o PASCAL começou a ser utilizado por programadores de outras linguagens, tornando- se, para surpresa do próprio Niklaus, um produto comercial. Contudo, somente ao final de 1983 foi que a empresa ame- ricana Borland International lançou o TURBO PASCAL.

O TURBO PASCAL é um programa que contém, além do compilador PASCAL, um ambiente completo de programa- ção, com editor de programa, depurador de erros, sistema de ajuda, etc.

Estudaremos, a seguir, os itens fundamentais que compõe a linguagem PASCAL.

2.1. VARIÁVEIS

Sabe-se da Matemática que uma variável é a representação simbólica dos elementos de um certo conjunto.

Nos programas destinados a resolver um problema no computador, a cada variável corresponde uma posição de me- mória, cujo conteúdo pode variar ao longo do tempo durante a execução de um programa. Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.

Toda variável é identificada por um nome ou identificador. Assim, por exemplo, num programa para calcular a área de um triângulo retângulo pelo teorema de Pitágoras (a^2 = b^2 + c^2 ), os identificadores A, B e C podem representar as posi- ções de memória que armazenam o valor da hipotenusa e dos catetos.

2.2. IDENTIFICADORES

São nomes escolhidos para representar constantes, variáveis, tipos, funções, procedimentos, unidades, programas e campos de um registro. Para definirmos um identificador, devemos observar o seguinte:

  • pode ter qualquer comprimento, mas apenas os sessenta e três primeiros caracteres são significativos;
  • deve ter como primeiro caracter uma letra;
  • após a primeira letra só pode conter letras, dígitos ou sublinha ( _ );
  • letras maiúsculas e minúsculas são indiferentes;
  • não podem haver identificadores repetidos;
  • não pode ser uma palavra reservada.

2.3. PALAVRAS RESERVADAS

As palavras reservadas da linguagem Pascal são as seguintes:

ABSOLUTE END INLINE PROCEDURE TYPE
AND EXTERNAL INTERFACE PROGRAM UNIT
ARRAY FILE INTERRUPT RECORD UNTIL
BEGIN FOR LABEL REPEAT USES
CASE FORWARD MOD SET VAR
CONST FUNCTION NIL SHL WHILE
DIV GOTO NOT SHR WITH
DO IF OF STRING XOR
DOWNTO IMPLEMENTATION OR THEN
ELSE IN PACKED TO

EXERCÍCIOS PROPOSTOS

P2.01. Escreva o tipo de dado ideal para se representar as seguintes informações:

a) O número da conta bancária

b) A altura de uma pessoa em metros

c) A placa de um veículo

d) O número de filhos de uma pessoa

e) A população de um país

f) A cor de um objeto

P2.02. Defina variável.

P2.03. O que são identificadores?

P2.04. Quais as regras básicas para a formação de identificadores?

P2.05. Assinalar os identificadores inválidos, justificando. a) A1BC b) XA1D c) XA,1d d) NomeDoAluno e) 198aberto f) OK g) TO.begin

P2.06. Quais os tipos de dados simples existentes na linguagem Pascal?

P2.07. Quais os tipos de dados estruturados existentes na linguagem Pascal?

P2.08. Quais os valores possíveis em um dado do tipo Boolean?

P2.09. O que é uma string?

P2.10. Qual o tamanho máximo de uma string?

P2.11. Identificar os tipos dos seguintes dados:

a) 'Processamento de Dados'

b) 0.

c) '4.5E10'

d) TRUE

e) '?'

f) ' '

g) -5.3E-

h) '.05'

i) 'FALSE'

j) 0

3. EXPRESSÕES

A seguir, relacionamos os operadores aritméticos, relacionais e lógicos do Pascal, como também as funções predefini- das da linguagem.

3.1. OPERADORES ARITMÉTICOS

Operador Operação Operandos Resultado

  • (^) Adição Integer, Real Integer, Real
  • (^) Subtração Integer, Real Integer, Real
  • (^) Multiplicação Integer, Real Integer, Real / (^) Divisão Real Integer, Real Real DIV Divisão Inteira Integer Integer MOD Resto da Divisão Integer Integer
EXEMPLOS:

Expressão Resultado 1 + 2 3 5.0 - 1 4. 2 * 1.5 3. 5 / 2 2. 5 DIV 2 2 5 MOD 2 1

3.2. FUNÇÕES NUMÉRICAS PREDEFINIDAS

Função Finalidade Tipo do argumento Tipo do resultado ABS(X) Valor Absoluto Integer, Real o mesmo do argumento FRAC(X) Parte Fracionária Real Real TRUNC(X) Parte Inteira Real Integer ROUND(X) Valor Arredondado Real Integer SQR(X) Eleva ao quadrado Integer, Real o mesmo do argumento SQRT(X) Raiz quadrada Integer, Real Real LN(X) Logaritmo Natural Real Real EXP(X) Exponencial Real Real

Como não existe em Pascal um operador nem uma função específica para a operação de Potenciação, podemos conse- guí-la utilizando as funções LN(X) e EXP(X). Para calcular o valor de XN^ é suficiente usar:

EXP(LN(X)*N)
EXEMPLOS:

Expressão Resultado ABS(-2.5) 2. ABS(8) 8 FRAC(5.234) 0. TRUNC(2.78) 2 ROUND(2.78) 3 SQR(2) 4 SQR(1.5) 2. SQRT(4) 2. SQRT(2.25) 1. EXP(LN(2)*3) 8

EXERCÍCIOS PROPOSTOS

P3.01. O que são expressões aritméticas?

P3.02. Qual o resultado das expressões aritméticas abaixo, sabendo-se que os valores de X, Y e Z são, respectivamen- te, 1, 2 e 5? a) Z mod Y div Y b) X + Y + Z / 3 c) FRAC( X / Z) + ROUND(Z / y) * TRUNC(Z / Y) d) SQRT( Z div Y + X * Y) e) Z - ABS(X - SQR(Y))

P3.03. O que são Funções Predefinidas?

P3.04. Escreva o resultado das seguintes funções:

a) ABS(-4) b) ABS(5.2) c) FRAC(23.0) d) FRAC(-3.1) e) TRUNC(1.8) f) TRUNC(2.2) g) ROUND(1.8) h) ROUND(2.2) i) SQR(1.0) j) SQR(10) k) SQRT(25) l) SQRT(9.0)

P3.05. Escreva a expressão para se calcular o valor de 2^5.

P3.06. Preencha a Tabela Verdade abaixo:

A B A and B A or B not A Not B TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE

P3.07. Escreva o resultado das seguintes comparações:

a) 1 <> 1. b) 'abc' > 'ABC' c) ' ' = ' ' d) FALSE = FALSE e) TRUE <> TRUE f) 'JOSE' > 'JOSEFINA' g) '50' < '100'

P3.08. Qual o resultado das expressões lógicas abaixo, sabendo-se que os valores de A e B são, respectivamente, TRUE e FALSE? a) not A and B or A and not B b) not (not (A or B) and (A or B)) c) A or B and not A or not B d) (A or B) and (not A or not B)

4. FORMATO DE UM PROGRAMA PASCAL

Pascal é uma linguagem altamente estruturada que possui uma rigidez definida, embora sua estrutura de programa seja flexível. Cada seção ou parte de um programa em Pascal deve aparecer numa seqüência apropriada e ser sistematica- mente correta, senão ocorrerá um erro.

Por outro lado, no Pascal não há regras específicas para o uso de espaço, linhas quebradas, requisições e assim os co- mandos podem ser escritos no formato livre em quase todos os estilos em que o programador deseja utilizar.

Um programa escrito em Pascal tem o seguinte formato:

PROGRAM ; .

O , por sua vez, está dividido em seis áreas, onde somente a última é obrigatória e devem obedecer a seqüência abaixo. São elas:

  • Área de declaração de uso de unidades
  • Área de declaração de constantes
  • Área de declaração de tipos
  • Área de declaração de variáveis
  • Área de declaração de procedimentos e funções
  • Área de comandos

Observação: no Turbo Pascal, a cláusula PROGRAM, bem como a seqüência correta das declarações, não são obriga- tórios.

4.1. DECLARAÇÃO DE USO DE UNIDADES

Um programa Pascal pode fazer uso de algumas unidades padrão que estão disponíveis no Sistema Turbo, tais como: CRT, DOS, PRINTER, GRAPH, etc.

A área de declaração de uso de unidades possui o seguinte formato:

USES , ... , ;

EXEMPLO:
USES CRT,PRINTER;

4.2. DECLARAÇÃO DE CONSTANTES

Serve para associarmos nomes às constantes utilizadas no programa. Possui o seguinte formato:

CONST =;...;=;

EXEMPLO:
CONST
BRANCO = ' ';
PI = 3.1416;
MAX = 10;
OK = TRUE;
EXEMPLO:

program REAJUSTE_SALARIO; {Finalidade: Calc. o reajuste de um salario em 20%}

uses Crt; {unidade que contém os comandos de tela}

const IND = 0.20; {indice do reajuste}

var SAL_ATUAL {salario atual}, SAL_NOVO {novo salario}, AUMENTO {valor do aumento} : Real;

begin

clrscr; {limpa a tela}

{leitura do salario atual} write('Digite o salario atual: '); readln(SAL_ATUAL);

{calculo do reajuste} AUMENTO := SAL_ATUAL * IND; SAL_NOVO := SAL_ATUAL + AUMENTO;

{exibicao do resultado} writeln('Novo Salario = ',SAL_NOVO:10:2); readkey;

end.

EXERCÍCIOS PROPOSTOS

P4.01. Qual o formato básico de um programa Pascal?

P4.02. Quais as áreas que podem existir em um bloco do Pascal? Qual delas é obrigatória?

P4.03. Qual a finalidade de declararmos uma variável?

P4.04. Qual a finalidade de um comentário dentro de um programa? Como deve ser escrito em Pascal?

P4.05. Dê um exemplo para cada uma das áreas abaixo:

a) Declaração de Uso de Unidades

b) Declaração de Constantes

c) Declaração de Variáveis

P4.06. Escreva os comandos necessários para declarar:

a) uma variável que receba uma frase qualquer

b) três variáveis que recebam as 3 notas de um aluno

c) uma variável que receba a idade de uma pessoa

5. COMANDOS BÁSICOS

5.1. ATRIBUIÇÃO

A operação de atribuição permite que se forneça um valor a uma certa variável. Se for atribuído uma expressão à variá- vel, será armazenado o resultado daquela expressão. Se for atribuído uma outra variável, será armazenado o conteúdo daquela variável. Para a operação de atribuição, utilizaremos a seguinte sintaxe:

O comando de atribuição tem a forma:

:= <expressão>

Exemplos: A := 2 NOME := 'João' A := B + C B := A SENHA := 'Y9' NOTA := NOTA – 1 NOTA := 10 C := 1 / 3 X := 2.

No comando de atribuição, a variável e a expressão devem ser do mesmo tipo, exceto nos seguintes casos: a) a variável sendo real , a expressão pode ser integer b) a variável sendo string , a expressão pode ser char

Exemplos: Var I : Integer; R : Real; S : String; C : Char; Begin I := 5; R := I; C := 'A'; S := C End.

5.2. ENTRADA

Um comando de entrada serve para que o programa solicite dados no momento em que o mesmo está sendo executado. Esses dados fornecidos serão armazenados em variáveis na memória. Em geral a unidade de entrada é o teclado, poden- do também ser uma memória auxiliar como o winchester.

Considerando a unidade de entrada padrão, o teclado, o comando seria:

READ (<identificador-1>,...<identificador-n>) ou READLN (<identificador-1>,...,<identificador-n>)

Com READ o cursor permanece na mesma linha após a execução do comando; com o READLN o cursor muda para a próxima linha.

Observação: No Turbo Pascal, o comando READ só deve ser utilizado para a leitura de arquivos. Portanto, para a leitura de variáveis, devemos sempre utilizar o comando READLN.

EXEMPLOS:

1) Se o programa deve solicitar as três notas de um aluno, teríamos:

readln (NOTA1,NOTA2,NOTA3); ...

No momento da execução do comando acima, o programa mostra a tela do usuário e o cursor aparece esperando a digi- tação dos três valores que deve ser separada por, pelo menos, um espaço em branco.

EXERCÍCIOS PROPOSTOS

P5.01. Exemplifique o uso dos comandos de Atribuição, Entrada e Saída.

P5.02. Qual a diferença entre os comandos WRITE e WRITELN?

P5.03. Como podemos direcionar a saída de um programa para a impressora? Dê exe mplos.

P5.04. Como podemos orientar o usuário na digitação dos dados? Exemplifique.

P5.05. Escreva os comandos necessários para ler: a) as 3 notas de um aluno b) o nome, o peso e altura de uma pessoa

P5.06. Escreva os comandos necessários para exibir: a) o conteúdo da variável X b) o resultado da expressão 2+

P5.07. Determine os valore finais de A, B e C após a execução do trecho do programa abaixo:

A := 0 A B C
B := 1
C := A + B
A := A + 1
B := A + B + C

P5.08. A ordem das atribuições é importante? A:=B e C:=A tem o mesmo efeito de C:=A e A:=B?

P5.09. Em quais dos seguintes pares é importante a ordem dos comandos?

a) X := Y b) X := Y c) X := Z d) Z := Y Y := X Z := X X := Y X := Y

P5.10. Escreva um programa que leia um número inteiro positivo e exiba o dobro do mesmo.

P5.11. Escreva um programa para calcular a área de um triângulo, sendo dados a sua base e a sua altura.

BASE ALTURA

ÁREA

P5.12. Escreva um programa para calcular e exibir o comprimento de uma circunferência, sendo dado o valor de seu raio.

P5.13. Escreva um programa para ler uma temp eratura dada na escala Fahrenheit e exibir o equivalente em Celsius.

( 32 )

C = F −

P5.14. Escreva um programa para calcular e exibir a média ponderada de duas notas dadas. ( nota1 = peso 6 e nota2 = peso 4 )

P5.15. Escreva um programa que leia duas variáveis inteiras e troque o conteúdo entre elas.

P5.16. Escreva um programa para calcular e exibir o valor de xy, sendo dados a base (x) e o expoente (y).

P5.17. Escreva um programa para ler o nome e o sobrenome de uma pessoa e escrevê-los na seguinte forma: sobre- nome seguido por uma vírgula e pelo nome.

Exemplo: entrada: "Antonio","Soares" saída: Soares, Antonio

C = 2 π R

6. ESTRUTURAS DE DECISÃO

As estruturas de decisão (condicionais) são utilizadas para tomar uma decisão baseada no resultado da avaliação de uma condição de controle e seleciona uma ou mais ações possíveis (comandos) para serem executados pelo computador.

No Pascal, existem três tipos de estrutura de decisão: O comando IF, que pode ser utilizado de duas formas: simples ou composto; e o comando CASE, que é utilizado para uma decisão seletiva.

6.1. COMANDO IF-THEN-ELSE

O comando IF é equivalente ao comando SE da linguagem algorítmica, e deve ser utilizada da seguinte forma:

IF <condição> THEN [ ELSE ]

Neste caso, se a <condição> resultar no valor TRUE, será executado o ; caso contrário, será executado o , se o mesmo existir, já que é opcional.

A <condição> deve ser uma expressão lógica. O e podem ser um comando simples ou um comando composto. Um comando composto é formado por dois ou mais comandos, separados por ponto-e-vírgula e delimitados por BEGIN e END.

EXEMPLO 1:

program EXEMPLO_DE_IF_THEN; {Ler um número inteiro e exibí-lo se for positivo} var N : integer;

begin readln(N); if N > 0 then writeln(N) end.

No exemplo acima, o comando WRITE só será executado se a condição N>0 for verdadeira. Caso contrário, nenhuma ação será executada.

EXEMPLO 2:

program EXEMPLO_DE_IF_THEN_ELSE; {Lê um número e determinar se é maior que zero ou não} var N : integer;

begin readln(N); if N > 0 then writeln (N,' é maior que zero' ) else writeln (N,' não é maior que zero') end.

Neste exemplo, a mensagem que será exibida dependerá do resultado da expressão lógica N>0. Se for verdadeira, será executado o comando WRITE que sucede a palavra THEN. Caso contrário, será executado o WRITE que sucede a palavra ELSE. Em nenhuma hipótese serão executados os dois comandos.

EXEMPLO:

program EXEMPLO_DE_DECISAO_MÚLTIPLA; {Simulador de uma calculadora básica de números inteiros} uses CRT; var X,Y : integer; OP : char; begin clrscr; write('Digite os operandos: '); readln(X,Y); write('Digite o operador: '); readln(OP); case OP of '+' : writeln(X + Y); '-' : writeln(X - Y); '*','x','X' : writeln(X * Y); '/' : writeln(X div Y); else writeln('operação inválida'); end {case}; readkey; end.

Neste exemplo, a mensagem que será exibida dependerá do conteúdo da variável OP. Se for igual a uma das constantes especificadas, será executado o comando WRITELN correspondente. Se nenhuma constante for igual ao conteúdo de OP, será executado o WRITELN do ELSE.

Podemos também escrever o mesmo programa acima sem utilizar a estrutura CASE, apenas utilizando IF's aninhados.

EXEMPLO:

program EXEMPLO_DE_DECISAO_MÚLTIPLA_2; {Simulador de uma calculadora básica de números inteiros} uses CRT; var X,Y : integer; OP : char; begin clrscr; write('Digite os operandos: '); readln(X,Y); write('Digite o operador: '); readln(OP); if OP='+' then writeln(X + Y) else if OP='-' then writeln(X - Y) else if (OP='*') or (OP='x') or (OP='X') then writeln(X * Y) else if OP='/' then writeln(X div Y) else writeln('op.inválida'); readkey; end.

EXERCÍCIOS PROPOSTOS

P6.01. Qual a utilidade da estrutura de decisão?

P6.02. Qual a diferença entre a estrutura de decisão simples e a composta?

P6.03. Quais são os comandos de decisão existentes no Pascal?

P6.04. Em que situações é mais indicado o uso da estrutura CASE-OF? Quando não podemos utilizá-la?

P6.05. Os comandos (i) e (ii) são equivalentes? Explique sua resposta.

(i) A := B = C (ii) if B = C then A := TRUE else A := FALSE

P6.06. Observe o trecho de programa abaixo, considerando L1, L2 e L3 como variáveis booleanas. ... if L1 then write('A') else if L2 then if L3 then write('B') else begin write('C'); write('D'); end else write('E'); ...

Agora, responda as seguintes questões: a) Se forem lidos V, V e V, o que será escrito pelo algoritmo? b) Se forem lidos F, V e V, o que será escrito pelo algoritmo? c) Se forem lidos F, V e F, o que será escrito pelo algoritmo? d) Que valores deveriam ser lidos para que fosse escrito apenas "E"?

P6.07. Escreva um programa que leia dois números e exiba o maior deles.

P6.08. Escreva um programa que leia dois números e exiba-os em ordem crescente.

P6.09. Escreva um programa que leia um número inteiro e determine se ele é par ou ímpar.

P6.10. Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para isto, escreva um programa que leia o código do consumidor, o preço do Kw e a quantidade de Kw consumido, e exiba o código do con- sumidor e o total a pagar.

  • total a pagar = preço x quantidade
  • total a pagar mínimo = R$ 11,

P6.11. Escreva um programa para ler três números inteiros distintos e determinar o menor deles.

P6.12. Faça um programa que, dado as três notas de um aluno, determine e exiba a sua média final e o seu conceito, sabendo-se que:

  • a média final é calculada pela média aritmética das 3 notas;
  • o conceito é determinado de com base na tabela abaixo:
MÉDIA FINAL CONCEITO
≥ 8,0 A

≥ 5,0 e < 8,0 B < 5,0 C