aula 5 – oficina de programação introdução ao celaine/disc/op/aula5-introducao-c.pdf ·...

56
Aula 5 – Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017

Upload: trinhkhanh

Post on 09-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Aula 5 – Oficina de Programação Introdução ao C

Profa. Elaine Faria UFU - 2017

Linguagem de Programação

Para que o computador cons iga ler um programa e entender o que fazer, es te programa deve ser escrito em uma linguagem que o computador entenda

Esta linguagem chama-se LINGUAGEM DE PROGRAMAÇÃO

Etapas de um programa

Etapas de desenvolvimento de um programaAnálise estuda-se o enunciado do problema para definir os dados de entrada, processamento e dados de saída (O QUE deve ser feito)

Algoritmo utiliza-se ferramentas para descrever COMO resolver o problema identificado

Codificação transforma-se o algoritmo em códigos na linguagem de programação escolhida

Algoritmo

algoritmo “Olá Mundo”varinicio escreva( “Olá Mundo!”)fimalgoritmo

#include <stdio.h> int main(void) { printf("Olá Mundo!"); return 0; }

C

Linguagens de Programação• São instrumentos para facilitar a comunicação

entre humanos e computadores a fim de solucionar problemas.

• Têm o objetivo de representar alguma informação por meio de uma seqüência de símbolos

• É um método padronizado para expressar instruções para um computador.

Linguagens de Programação• Uma linguagem de programação é composta por

um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.ü Sintaxe: representação simbólicaü Semântica: o conceito que ela representa

Exemplo: comando “se” na linguagem C– Sintaxe: if (<expr>) <instrução>– Semântica: se o valor da expressão for verdadeiro, a instrução será executada

Tipos de Linguagem• Linguagens de Baixo Nível

- Linguagens de Máquina- Formada por uma seqüência de dígitos

binários (0s e 1s)- Notação inteligível para o processador mas

de difícil compreensão para humanos.

• Alto Nível- Aproximam-se das linguagens utilizadas por

humanos para expressar problemas e algoritmos

Linguagem de Máquina

• Programação inviável para seres humanos

• Programa: forma de se comunicar com um computador (linguagem de máquina)

• Processo: código fonte código objeto executável

• Código fonte: é o programa em si, escrito pelo programador, contendo os comandos da linguagem

• Código objeto: é a tradução do código fonte para uma forma que o computador possa executar

Compiladores x Interpretadores

• Traduzem o código fonte para código objeto

• Um código escrito em “Pascal” ou “C” é transformado numa seqüência equivalente de instruções específicas do S.O. de destino

Compilador

Compilação

Compilando um programa em C

Código fonte (.c)

Código executável

(.exe)

compilador linkeditorCódigo objeto (.o)

Código objeto (.o)

Código objeto (.o)

.

.

.

• O linkeditor recebe um ou mais arquivos de código objeto (extensão .o) gerados pelo compilador e cria um único arquivo executável

• Interpretadores:

• É um programa que interpreta diretamente as instruções do programa fonte, gerando o resultado

• Toda vez que o programa é executado, o tradutor transforma as instruções do código-fonte em código-objeto

Compiladores x Interpretadores

Compilação x Interpretação

• CompilaçãoO programa fonte não é executado diretamenteO programa fonte é convertido em programa objeto e depois é executadoVantagem: Execução mais rápida

• InterpretaçãoExecutar o programa fonteNão existe a geração de um módulo ou programa objetoVantagem: Programas menores e mais flexíveis

Linguagem de Programação Cl A linguagem C foi criada por Dennis Ritchie, em

1972, no centro de Pesquisas da Bell Laboratories.

l Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly.

l Características da linguagem C:l Linguagem imperatival Simples e de fácil aprendizado

IDE

• IDE – Integrated Development Environment

• Ambiente Integrado de Desenvolvimento

• Existem vários ambientes integrados de desenvolvimento para C- Dev-C++- CodeBlocks

Normas Gerais: Caracteres Válidos• Um programa-fonte em C é um texto não

formatado escrito em um editor de textos usando um conjunto padrão de caracteres ASCII.

• Abaixo estão os caracteres utilizados em C:

a b c d e f g h i j k l m n o p q r s t u v w x y zA B C D E F G H I J K L M N O P Q R S T U V W X Y Z1 2 3 4 5 6 7 8 9 0+ - * / \ = | & ! ? # % ( ) { } [ ] _ ‘ “ . , : < >

A Função main()

• A função main() é o ponto de início da execução do programa e deve existir em algum lugar dentro do seu programa.

• Exemplo:

#include <stdio.h> // biblioteca

int main() // definição do programa principal{ printf(“Hello, World!"); // escreve a mensagem na tela return 0; // finaliza o programa principal}

Declaração de variáveis

• Uma declaração de variável é uma instrução para reservar uma quantidade de memória para armazenar um tipo especificado.

• A declaração de uma variável consiste de um tipo e um identificador• O tipo determina o espaço de memória que

deverá ser alocado• O identificador permitirá que ela seja

referenciada no restante do programa

Tipos de dado• O tipo de uma variável informa a quantidade de

memória, em bytes, que esta irá ocupar e a forma como seu conteúdo será armazenado.

• Tipos básicos em C

Tipo Bit Bytes Escalachar 8 1 -128 a 127int 16 2 -32768 a 32767float 32 4 3.4E-38 a 3.4E+38double 64 8 1.7E-308 a 1.7E+308

Tipo Lógico

int main(void){ ... if(canhoto) { printf(“\nPegue sua carteira de canhoto!”); } ...}

• 0 Falso• qualquer número diferente de zero Verdadeiro

Identificador

• Identificador:- Primeiro caracter deve ser “letra” ou o “caracter

sublinhar”- Não pode usar palavras reservadas- Case sensitive (letras maiúsculas e minúsculas

são diferentes)- Usar nomes signif icat ivos para ajudar na

compreensão do programa.

23

Palavras reservadas

• São utilizadas pela linguagem e não podem jamais serem usadas como identificadores

Declaração de variáveisTradução de Algoritmos

Algoritmo

idade: inteiro salario: real

letra: caractere

Linguagem C

int idade;

float salario; ou double salario;

char letra;

Atribuição• É a principal forma de se armazenar um dado em

uma variável.

• Esse comando permite que você forneça um valor a uma variável, onde o tipo desse valor tem que ser compatível com a variável.

• O comando de atribuição é representado por = (sinal de igualdade)

• Exemplo: x = 10; Lê-se: “A variável x recebe o valor 10 ou x recebe o valor 10”

AtribuiçãoTradução de Algoritmos

Algoritmo

idade 25 salario 510.0

letra “A”

Linguagem C

idade = 25;

salario = 510.0;

letra = ‘A’;

Comentários

Podem ser escrito em qualquer lugar do texto.

int main( ){ /* comentário de várias linhas */

// comentário de uma linha

}

Comentários#include <stdio.h>int main(){ // Declaração da variável nota float nota; /* A instrução abaixo atribui o valor 7.5 à variável nota */ nota = 7.5;

return 0;}

Função printf()• Responsável pela impressão de dados na tela do

computador.

• Sintaxe: printf(“Expr. de controle”,lista de argumentos);

• Exemplo:

int main( ){ printf(“Meu primeiro programa em C”); return 0;}

Função printf()Tradução de Algoritmos

algoritmo “Primeiro programa”varinicio escreva(“Meu primeiro programa em C”)fimalgoritmo

Algoritmo

int main( ){ printf(“Meu primeiro programa em C”); return 0;}

Linguagem C

Função printf()Outro exemplo:

O programa imprimirá na tela:

int main( ){ printf(“Este e’ o numero dois: %d”,2); return 0;}

Este e’ o número dois: 2

Função printf()Imprimindo cadeia de caracteres:

O programa imprimirá na tela:

int main( ){ printf(“Dia %d de %s e’ feriado!”,7,”setembro”); return 0;}

Dia 7 de setembro e’ feriado!

Função printf()Código para impressão formatada

Função printf()• Caracteres de controle

• Caracteres de controle utilizados com a função printf()

Função printf()

#include <stdio.h>int main(){ float nota; nota = 7.5;

printf(“\”A nota do aluno é: %f\””, nota); return 0;}

O programa imprimirá na tela: "A nota do aluno e': 7.500000 "

Exemplo usando o caracter de controle \”:

Função printf()

int main(){ float nota = 7.5;

printf(“\”A nota do aluno é: %f\””,nota); printf(“\n\”A nota do aluno é: %0.2f\””,nota); return 0;}

Saída: "A nota do aluno e': 7.500000" "A nota do aluno e': 7.50"

Formatando o número de casas decimais do tipo float.

Função scanf()• Responsável pela leitura de dados via teclado.• Sintaxe: scanf(“Expr. de controle”,lista de argumentos);

• Operador de endereço &:

Saída:

int main( ){ int num; num = 2; printf(“Valor: %d, \nEndereco: %u”, num, &num); return 0;}

Valor: 2,Endereco: 2293572

Exemplo 1 - scanf()

#include <stdio.h>int main(){ char letra; printf(“Digite uma letra do alfabeto: ”); scanf(“%c”, &letra);

printf(“A letra digitada foi: %c ”, letra); return 0; }

Leitura de uma letra do alfabeto

Exemplo 2 - scanf()

#include <stdio.h>

int main(){ int num; printf(“Digite um numero inteiro: ”);

scanf(“%d”, &num);

printf(“O valor digitado foi: %d ”, num);

return 0;}

Leitura de um valor inteiro

Exemplos: printf() – scanf()

int main(){ char conceito;

// Texto: “Qual seu conceito final em Oficina de Prog.?”

// Leia o valor digitado

// Imprima o conceito

return 0;}

Exemplo 1:

Exemplos: printf() – scanf()

int main(){ char conceito;

printf(“Qual seu conceito final em Oficina de Prog.?”);

scanf(“%c”, &conceito);

printf(“\nConceito: %c”, conceito);

return 0;}

Exemplo 1:

Exemplos: printf() – scanf()

int main(){ int anoNasc;

// Texto: “Digite o ano do seu nascimento: ”

// Leia o valor digitado

// Imprima o ano de nascimento

return 0;}

Exemplo 2:

Exemplos: printf() – scanf()

int main(){ int anoNasc;

printf(“Digite o ano do seu nascimento: ”);

scanf(“%d”, &anoNasc);

printf(“\nAno de Nascimento: %d”, anoNasc);

return 0;}

Exemplo 2:

Exemplos: printf() – scanf()

int main(){ int num1, num2;

// Texto: “Digite dois números: ”

// Leia os valores digitados

// Imprima os dois números

return 0;}

Exemplo 3:

Exemplos: printf() – scanf()

int main(){ int num1, num2;

printf(“Digite dois números: ”);

scanf(“%d”, &num1); scanf(“%d”, &num2);

printf(“Números: %d, %d”, num1, num2);

return 0;}

Exemplo 3:

Exemplos: printf() – scanf()

int main(){ int num1, num2;

printf(“Digite dois números: ”);

scanf(“%d %d”, &num1, &num2);

printf(“Números: %d, %d”, num1, num2);

return 0;}

Exemplo 3:

Operadores Aritméticos em C

• Operadores Binários: = Atribuição+ Soma- Subtração/ Divisão* Multiplicação% Módulo (resto da divisão inteira)

• Operador Unário- Menos unário

Operadores Aritméticos em C• Operador de Atribuição =

- Representa a atribuição da expressão a direita ao nome da variável a esquerda

- Exemplo: num = 2000;

• Operador + - / *- Representam as operações aritméticas básicas de

soma, subtração, divisão e multiplicação.

• Operador menos unário –- Usado somente para indicar a troca do sinal algébrico

do valor.• Operador módulo %

- Retorna o resto da divisão inteira.

Tradução de Algoritmos - Problema 1Enunciado:“Ler uma temperatura em graus Fahrenheit e apresentá-la convertida em graus Celsius . A fórmula de conversão é: C = (F – 32.0) * (5.0/9.0), sendo F a temperatura em Fahrenheit e C a temperatura em Celsius”

Português estruturadovar F, C : realinicio escreva(“Digite a temperatura em Fahrenheit: ”) leia(F) C (F – 32.0) * (5.0/9.0) escreva(“A temperatura em graus celsius é: ”, C)fimlgoritmo

Tradução de Algoritmos - Problema 1

#include <stdio.h>int main(){ float F, C; printf("Digite a temperatura em Fahreneit: "); scanf("%f", &F); C = (F - 32.0) * (5.0/9.0); printf("A temperatura em graus Celsius e': %f.", C); return 0;}

Programa em C

Enunciado:“Elaborar um programa que efetue a leitura de três valores (A, B e C) e apresente como resultado final o quadrado da soma dos três valores lidos.”

Português Estruturado:

var A, B, C, SOMA, QUADRADO: realinicio escreva(“Digite os valores de A, B, C: ”) leia(A, B, C) SOMA A + B + C QUADRADO SOMA * SOMA escreva(“O quadrado da soma é: ”, QUADRADO)fim.

Tradução de Algoritmos - Problema 2

Tradução de Algoritmos - Problema 2

#include <stdio.h>

int main(){ float A, B, C, SOMA, QUADRADO; printf("Digite os valores de A, B, C: "); scanf("%f %f %f", &A, &B, &C); SOMA = A + B + C; QUADRADO = SOMA * SOMA; printf("O quadrado da soma e': %0.2f.", QUADRADO); return 0;}

Programa em C

Exercícios

1) Escreva um programa em C que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada entre essas notas.

2) Escreva um programa em C que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%

Exercícios

3) Escreva um programa em C que receba o salário-base de um funcionário, calcule e mostre o salário a receber, sabendo-se que esse funcionário tem gratificação de 5% sobre o salário-base, e paga imposto de 7% sobre o salário-base.

4) Escreva um programa em C que receba uma hora formada por hora e minutos, e calcule a hora digitada apenas em minutos.

Exercícios

5) Escreva um algor i tmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre a idade desta pessoa, e quantos anos essa pessoa terá em 2020

6) Cada degrau de uma escada tem X de altura. Escreva um algoritmo que receba essa altura e a altura que o usuário deseja alcançar subindo a escada. Calcule e mostre quantos degraus o usuário deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário