43
Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: [email protected])

Linguagem de Programação aula 4 - vidjaya.com.br int computacao aula 4 LINGUAGEM... · Profa Suely (e-mail: ... "significado" dos programas (como o ... #define MEU_NOME “João”

Embed Size (px)

Citation preview

Linguagem de Programação

aula 4

Engenharia Elétrica e Engenharia de Automação

Introdução à Computação – 1.o sem/2013

Profa Suely (e-mail: [email protected])

Programas

• Programas são seqüências de instruções

que descrevem as tarefas a serem realizadas

para alcançar a solução de um determinado

problema, e devem ser escritos em uma

linguagem de programação para que

possam ser executados em um computador.

• Portanto, um programa é um algoritmo

construído segundo as regras de uma

linguagem de programação.

Técnicas de Programação

• Na elaboração de programas é necessário utilizar um método sistemático de programação que permita a obtenção de programas confiáveis, flexíveis e eficientes. Quando existe um problema e utiliza-se um computador para resolvê-lo inevitavelmente tem-se que passar pelas seguintes etapas:

– Análise do problema

– Projeto do programa - algoritmo e estruturas de dados

– Implementação (codificação) e teste do programa

Definição de Linguagem de Programação

• Uma LP é uma linguagem destinada a ser usada por uma pessoa para expressar um processo através do qual um computador pode resolver um problema.

• Em outras palavras, uma LP faz a ligação entre o pensamento humano (muitas vezes de natureza não estruturada) e a precisão requerida para o processamento pela máquina.

Componentes de uma LP

• Computador: a máquina que executará o

processo descrito através do programa;

• Pessoa: o programador que serve como a

origem da comunicação;

• Processo: a atividade que está sendo

descrita através do programa;

• Problema: o sistema atual ou ambiente

onde o problema surgiu.

Especificação de uma LP

A descrição de uma linguagem de programação envolve dois aspectos:

Sintaxe

• A sintaxe é o conjunto de regras que

determina quais construções são corretas para

formação dos programas e quais não são.

• Em outras palavras, preocupa-se com a

"forma" dos programas (como expressões,

comandos, declarações, etc, são colocados

juntos para formar programas).

Semântica

• A semântica é a descrição de como as

construções sintaticamente corretas são

interpretadas ou executadas.

• Em outras palavras, preocupa-se com o

"significado" dos programas (como o

programa vai se comportar quando

executado no computador).

Exemplos • a = b (em C)

comando de atribuição correto (sintaxe)

substitua valor de a com o valor atual de b (semântica)

• a := b (em C)

comando de atribuição incorreto (erro de sintaxe)

• a = b (em C),

porém com variáveis com tipos diferentes (inteiro ou

caracter)

substitua valor de a com o valor atual de b (erro de

semântica)

Tradução de uma LP

Interpretação

Dados de

Saída

Dados de

Entrada

Interpretador

Programa

Compilação

Dados

de

Saída

Dados de

Entrada

Máquina

Program

a Objeto

Compilador

Program

a

Fonte

Do programa fonte ao programa executável

• A geração de um programa executável a partir de um programa fonte obedece a uma seqüência de operações antes de tornar-se um executável.

• Depois de escrever o seu programa com o auxílio de um processador de textos no modo não documento, grava-se o programa em disco gerando assim o programa fonte (.c).

Do programa fonte ao programa executável

• O próximo passo é o pré-processador da linguagem, que expande o programa fonte de acordo com os comandos (os comandos do pré-processador são identificados pelo caracter # ).

• A seguir o arquivo expandido (extensão .c) é traduzido para o nível da linguagem assembly. É neste passo que os erros de sintaxe são notificados pelo compilador. Uma vez corrigidos os erros de sintaxe, é gerado o arquivo com extensão .ASM.

Do programa fonte ao programa executável

• O módulo montador (assembly) traduz o arquivo com os comandos em assembly (.ASM) para gerar o módulo objeto (.OBJ) com a respectiva codificação de máquina do computador.

• Por fim, o módulo ligador ou linkeditor prepara o módulo objeto ligando-o com outros módulos objetos e bibliotecas para gerar o módulo executável (.EXE).

Geração do executável a partir do

código fonte

/* ola.c */

# include <stdio.h>

main()

{

printf("Ola !");

}

Pré-processador

Compilador

ola.exe linkeditor ola.obj

Ola.asm montador

ola.c

Ciclo de Desenvolvimento de um Programa

IMPORTANTE!!!

Determinação e

entendimento do

problema: construção do

algoritmo em pseudo-

código ou do fluxograma

1. Codificação

• Transcrição do programa em

uma linguagem e usando

regras que o compilador da

linguagem entenda, gerando

desta maneira um CÓDIGO

FONTE.

2. Compilação

• É o processo através do qual um compilador lê o programa inteiro codificado e converte-o em um CÓDIGO OBJETO (arquivo.obj), que é uma tradução do CÓDIGO FONTE do programa em uma forma que o computador possa executar diretamente.

• O CÓDIGO OBJETO é também conhecido como código binário ou código de máquina.

3. Link-Edição

• Todo compilador C vem com uma biblioteca padrão de funções que realizam as tarefas necessárias mais comuns, como exemplo escrever no vídeo (printf()), ler um caracter do teclado (getch()), entre outras.

• O padrão ANSI C (American National Standards Institute) especifica o conjunto mínimo de funções que estará contido na biblioteca. No entanto seu compilador provavelmente conterá outras funções que podem não estar incluídas em um compilador de outro fabricante.

• O processo de link-edição é combinar o CÓDIGO OBJETO gerado pelo compilador que você escreveu, com o código objeto já encontrado na biblioteca padrão quando da chamada de uma função desta biblioteca, por exemplo printf() e getch(). O resultado deste processo é o CÓDIGO EXECUTÁVEL (arquivo.exe , no DOS).

4. Depuração e Testes

• Uma vez gerado o código executável passa-se para a etapa de verificação de funcionamento do programa, entrando em detalhes como valores de variáveis, fluxo dos dados, etc..., isto é na realidade o que chamamos de Depuração, e o ambiente a ser utilizado possui uma ferramenta poderosa para tal, o DEBUG.

• Uma vez toda que toda a parte lógica do programa está certa, parte-se para os testes. Se nesta etapa qualquer problema é encontrado, devemos iniciar todo o processo, passando novamente pelas etapas 1, 2, 3 e 4.

Início

Determinação e entendimento

do problema

Codificação

Compilação

Link-edição

Depuração e

testes

Programa OK?

Fim

1

2

3

4

Não

Sim

Figura 1- Ciclo de desenvolvimento

Linguagem C

Operador de Atribuição

• O operador de atribuição em linguagem

C é o símbolo de igualdade =

• Exemplo:

NUM = 3; (a variável NUM recebe o valor 3)

NUM = 45 / 5; (a variável NUM recebe o

resultado da operação)

NUM = NUM1 + NUM2; (a variável NUM recebe

o resultado da operação com os conteúdos das

variáveis NUM1 e NUM2)

Saída de Dados

• printf ( )

printf()

• printf (“oi, mundo!”);

• printf (“tenho %d anos de vida.”, idade);

• printf (“tenho %f metros de altura”, medida);

• printf (“não tenho a letra %c no meu nome”, letra)

• printf (“rua %s”, nome );

• printf (“a %d.a letra do alfabeto e : %c”, ordem, letra);

Entrada de Dados

• scanf ( )

• gets ( )

• getchar ( )

• getch ( )

• getche ( )

scanf ( )

• scanf( “%d”, &idade);

• scanf( “%f”, &altura);

• Obs: cuidado ao usar scanf () para leitura de string, tem que limpar o buffer de entrada antes de chamar esta função utilizando a função fflush ( ).

gets ( )

• gets(nome);

• Obs: esta função armazena a string

inteira.

getchar ( )

• sexo = getchar( );

• resposta = getchar( );

• Obs: esta função armazena somente um

único caracter.

getch ( )

• getch ( );

• Obs: esta função retorna imediatamente após qualquer tecla ser pressionada, mas não mostra na tela o valor dessa tecla; ela pode ser usada para não fechar a tela da execução do programa logo após o final dessa execução, ou seja, o programa fica “esperando” que uma tecla seja pressionada para fechar a tela de execução; tem a mesma utilização do system(“pause”).

getche ( )

• getche ( );

• Obs: esta função retorna imediatamente após qualquer tecla ser pressionada, mostrando na tela o valor dessa tecla; ela pode ser usada para não fechar a tela da execução do programa logo após o final dessa execução, ou seja, o programa fica “esperando” que uma tecla seja pressionada para fechar a tela de execução; tem a mesma utilização do system(“pause”).

EXEMPLOS DE PROGRAMAS COM ESTRUTURAS

LÓGICAS SEQUENCIAIS

/* Cabeçalho do programa */

// Programa : Exemplo 1

// Programador :

/* Declaração das Bibliotecas */

#include <stdio.h>

#include <conio.h>

int main ( ) // Aqui começa o programa

{

int X, Y;

Y = 2 ;

X = 10 ;

X = Y + 2 ;

X = ((Y + 3 ) * 4) – 5 ;

X = (X % 2 ) ;

printf (“O conteudo da variável X eh: %d”, X);

printf (“O conteudo da variável Y eh: %d”, Y);

}

/* Cabeçalho do programa */

// Programa : Exemplo 2

// Programador :

/* Declaração das Bibliotecas */

#include <stdio.h>

#include <conio.h>

int main ( ) // Aqui começa o programa

{

int ARESTA, AREA

printf (“Digite o valor da aresta do quadrado: ”);

scanf (“%d”, &ARESTA);

AREA = ARESTA * ARESTA ;

printf (“A área do quadrado eh: %d”, AREA);

}

/* Cabeçalho do programa */

// Programa : Exemplo 3

// Programador :

/* Declaração das Bibliotecas */

#include <stdio.h>

/*Definição das Constantes */

#define MEU_NOME “João”

int main ( ) // Aqui começa o programa

{

/*Declaração das Variáveis da função principal */

int idade;

float altura;

char nome[30], sexo;

clrscr( ); // Limpa a tela

printf(“ Oi! Meu nome e %s\n”, MEU_NOME);

printf(“ Qual seu nome ? ”);

gets(nome);

printf(“ Qual seu sexo - F (feminino) e M (masculino) ? ”);

sexo = getchar( );

printf(“ Qual sua idade ?”);

scanf( “%d”, &idade);

printf(“ Qual sua altura ?”);

scanf( “%f”, &altura);

system (“pause”);

}

Exercícios

Exercício 1

• Faça um programa para ler as

seguintes informações de uma

pessoa: Nome, Idade, Sexo,

Peso, Altura, Profissão, Rua,

Bairro, Cidade, Estado, CEP,

Telefone.

• Faça um programa para ler a

base e a altura de um

triângulo. Em seguida, calcule

e escreva sua área.

Área = ( Base * Altura ) / 2

Exercício 2

Escreva um programa que calcule o volume de um cilindro circular, dados o raio e altura desse cilíndro. Exiba o resultado desse cálculo.

V = π * r2 * h Em que:

π = 3.141547

r = raio

h = altura

Exercício 3

Faça um programa para ler a base e a altura de um triângulo. Em seguida, calcule e escreva sua área.

Área = ( Base * Altura ) / 2

Exercício 4

Exercício 5

Escreva um programa que calcule o volume de um cilindro circular, dados o raio e altura desse cilíndro. Exiba o resultado desse cálculo.

V = π * r2 * h Em que:

π = 3.14,

r = raio,

h = altura.

Exercício 6

Escreva um programa que calcule a raiz de uma equação do 1.o grau, dados os valores dos coeficientes.

a x + b = 0