• Nenhum resultado encontrado

LingProgEstrC++IntroducaoSequencia 2012

N/A
N/A
Protected

Academic year: 2021

Share "LingProgEstrC++IntroducaoSequencia 2012"

Copied!
28
0
0

Texto

(1)

Linguagem de

Programação Estruturada

Implementações em C/C++

Prof. M.Sc. Sérgio Augusto C. Bezerra

Instituto Federal do Amazonas

(2)

Objetivos da Aula

Conceituar algoritmo e conhecer suas técnicas

de representação.

Aprender como representar as expressões

aritméticas e lógicas através de algoritmos.

Desenvolver programas para representar as

expressões aritméticas e lógicas.

Introdução

Ling. de Prog. Estruturada

(3)

1. Introdução

Repensando sobre a lógica de programação

O que é a Lógica?

• É a ciência que estuda as leis do raciocínio.

Mas que leis são essas? Da Matemática, da Física,

da Geografia, etc?

• Se seguirmos os passos de tal lei estaremos

raciocinando logicamente ou conforme o estabelecido?

Algoritmo

é um termo derivado da Matemática:

• É um conjunto de instruções que podem ser executadas mecanicamente em um tempo finito de modo a resolver algum problema [Judith Gersting, 2001].

(4)

1. Introdução

Algoritmo sob o ponto de vista da Informática:

• É qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída. Portanto, um algoritmo é uma seqüência de passos

computacionais que transformam a entrada na saída. [Cormem e outros, 2002]

Princípio de Processamento de Dados

• Entrada  Processamento  Saída.

• Entrada: teclado, mouse ou scanner.

• Processamento: realizado pela UCP (ou CPU) através da execução de programas.

• Saída: monitor ou impressora. – Programas

• São algoritmos codificados através de uma linguagem de programação (C, C++, Pascal, Java, ...)

(5)

1. Introdução

Linguagens de Programação

Programa:

• é um conjunto de instruções que representam um algoritmo para a solução de algum problema.

• Instruções são escritas através de um conjunto de códigos (símbolos e palavras).

• Este conjunto de códigos possui regras de estruturação lógica e sintaxe própria. Dizemos que este conjunto de símbolos e regras formam um linguagem de

programação.

Grupos de Linguagens de Programação

• Linguagem de Baixo Nível • Linguagem de Alto Nível

(6)

1. Introdução

Linguagem de Baixo Nível

– São linguagens voltadas para a máquina, isto é, são escritas usando as instruções do microprocessador do computador.

São genericamente chamadas de linguagens Assembly.

Vantagens:

• Programas são executados com maior velocidade; • E ocupam menor espaço na memória.

Desvantagens:

• Em geral, os programas têm pouca portabilidade;

• Os códigos Assembly não são estruturados, tornando a programação mais difícil.

(7)

1. Introdução

Linguagem de Alto Nível

– São linguagens voltadas para o ser humano.

– Em geral usam sintaxe estruturada tornando o seu código mais legível.

– Necessitam de interpretadores ou compiladores para gerar instruções do microprocessador.

Interpretadores:

• Fazem a interpretação de cada instrução do programa fonte executando-o dentro de um ambiente de programação. • Exemplos: Basic e LISP.

Compiladores:

• Fazem a tradução de todas as instruções do programa fonte gerando um programa executável.

• Programas executáveis (*.exe) podem ser executados fora dos ambientes de programação.

(8)

1. Introdução

Linguagem de Alto Nível

As linguagens de Alto Nível podem se distinguir quanto a sua aplicação em:

Genéricas: C, Pascal e Basic.

Específicas: Fortran (cálculo Matemático), GPSS

(simulação), LISP (Inteligência Artificial) e PHP (páginas para Internet)

Vantagens

• Tem maior portabilidade • Facilidade na programação.

Desvantagens

• As rotinas geradas (em linguagem de máquina) são mais genéricas e, portanto, mais complexas;

(9)

1. Introdução

Linguagem C

Linguagem de alto nível e genérica.

– Foi escrita por programadores para programadores tendo como meta características de flexibilidade e portabilidade.

O C nasceu junto com o advento da teoria de linguagem

estruturada e do computador pessoal.

Usado para desenvolver o SO UNIX, além de muitas linguagens recentes basearem suas sintaxes no C.

Outras características do C:

• Compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. • O compilador C gera códigos mais enxutos e velozes que

muitas outras linguagens.

(10)

1. Introdução

Linguagem C (Histórico)

1970: Denis Ritchie desenha uma linguagem a partir do

BCPL nos labortórios da Bell Telephones, Inc, denominando-a de B.

1978: Brian Kerningham junta-se a Ritchie para aprimorar a

linguagem. A nova versão chama-se C, tornando-se rapidamente popular devido suas características de portabilidade e estruturação.

~1980: A linguagem é padronizada pela ANSI (American

National Standard Institute): surge o ANSI C.

~1990: A Borland International, fabricante de compiladores

profissionais escolhe o C e o Pascal como linguagens de trabalho para o seu Ambiente Integrado de

Desenvolvimento: surge o Turbo C.

~1992: O C se torna ponto de concordância entre teóricos do desenvolvimento da teoria de Object Oriented

(11)

1. Introdução

Criando Programas

Início

real

F, m, a;

a = 2.5;

m = 20;

F = m*a;

escreva(“Força: “ + F);

Fim

Algoritmo (Portugol ou Português Estruturado)

{

float

F, m, a;

a = 2.5;

m = 20;

F = m*a;

cout << “Força:” << F;

}

Programa em C/C++

Descreva a finalidade de:

{ }

float

cout

<<

Agrupar as instruções em bloco.

Definir o domínio de uma variável (tipo).

Está associado à saída padrão (geralm. vídeo).

Operador de inserção, conecta a mensagem a ser

impressa à cout.

(12)

1. Introdução

Variáveis (identificadores)

Em geral, da Matemática sabemos que uma variável

possui um:

• nome (usado para identificação)

• domínio (para estabelecer uma faixa de valores possíveis) • valor (que pode ser atribuído conforme o seu domínio).

Variável em Informática

Matemática Informática

nome nome

domínio tipo de dado

Uma variável é uma abstração de uma região de memória do computador, onde esta região pode ser identificada e manipulada por um nome que o programador dar a variável. Além disso, o espaço e o conteúdo desta região de memória, que agora será representada por uma variável, é especificado pelo programador quando ele define o tipo da variável.

(13)

1. Introdução

Formalização do nome da variável

– O nome de uma variável pode ser uma seqüência de um ou mais letras (a – z, A – Z) e/ou números (0 – 9) ou um

underscore (“_”), com o primeiro sendo obrigatoriamente

uma letra ou underscore.

– Vale ressaltar que letras minúsculas e maiúsculas são diferentes (case sensibility).

– Somente os 32 primeiros caracteres são significativos.

– Vejamos alguns exemplos de variáveis:

Válidos media _contador salBruto NOTA Situacao

Inválidos media anual sal-minimo 5toneladas cout

– Palavras reservadas da sintaxe do C++:

break case else const float

(14)

1. Introdução

Tipos de Dados

Tipos Básicos

Tipo Tamanho(B) Intervalo

char 1 -128 a 127

int 2 -32768 a 32767

float 4 3.4*10-38 a 3.4*10+38

double 8 1.7*10-308 a 1.7*10+308

(15)

1. Introdução

Tipos de Dados

Tipos Modificados

Tipo Tam.(B) Intervalo

unsigned char 1 0 a 255 unsigned 2 0 a 65535 short 2 -32768 a 32767 long 4 -2147483648 a 214748367 unsigned long 4 0 a 4294967295 long double 10 3.4*10-4932 a 1.1*10+4932

O tipo int tem sempre o tamanho da palavra da máquina (por exemplo, em computadores de 16 bits ele terá 16 bits de

tamanho).

No MS-DOS, o tipo short é idêntico ao tipo int, por isso, é pouco usado.

(16)

1. Introdução

Declaração de variáveis

Sintaxe

:

tipo nome_da_var;

tipo nome_da_var1, nome_da_var2, ..., nome_da_varN;

Exemplos

:

int idade; char letra;

float nota1, nota2, media;

Strings

– É um conjunto ordenado de caracteres que pode ser armazenado sob forma de um vetor dinâmico.

Exemplo

:

char* nome;

nome = “Sérgio Bezerra”;

Sintaxe

:

(17)

1. Introdução

Inicialização de variáveis

Sintaxe

:

tipo nome_da_var1=valor1, ..., nome_da_varN=valorN;

tipo nome_da_var1= nome_da_var2= ...= nome_da_varN= valor;

Exemplos

:

int x=10, y=5; char letra=‘A’;

float nota1=7.5, nota2=8.7, media; char* nome= “Sérgio Bezerra”;

Sintaxe

: (tipo)nome_da_var;

Exemplo

: int num; float valor = 45.34; num = (int)valor;

Conversão de tipo (Casting)

As aspas simples servem para representar

um único caractere

ASCII (American

Standard Code for Information

Interchange) com um valor numérico entre 0 e

255 e as aspas duplas, para representar cadeias

(18)

1. Introdução

Constantes Simbólicas

Constantes definidas pelo programador

Sintaxe

:

#define nome_da_const valor

• O #define é uma diretiva de compilação que diz ao compilador para trocar as ocorrências do texto nome_da_const pelo valor. • Observe que não há ; no final da instrução pois trata-se de um

comando para o compilador e não para o processador. • A instrução #define deve ser escrita antes da instrução de

declaração da rotina principal.

• Não é obrigatório o uso dos símbolos com letras maiúsculas, porém faz parte do jargão dos programadores C.

Exemplos

:

#define PI 3.14159 #define ON 1

#define OFF 0

(19)

1. Introdução

Constantes Simbólicas

Constantes pré-definidas

• A seguir uma tabela contendo algumas constantes

simbólicas pré-definidas no compilador Turbo C++ da Borland.

• Cada uma destas constantes estão definidas em uma biblioteca.

Biblioteca Constante Valor Significado

math.h M_PI 3.14159...  math.h M_PI_2 1.57079... /2 math.h M_SQRT2 1.41421... 2

conio.h BLACK 0 valor da cor preta conio.h BLUE 1 valor da cor azul conio.h GREEN 2 valor da cor verde

(20)

1. Introdução

Constantes Simbólicas

– Uma biblioteca, em C, é um arquivo pré-compilado chamado arquivo header (cabeçalho). Em cada biblioteca estão

agrupadas constantes e funções semelhantes.

– Por exemplo, constantes e funções matemáticas estão guardadas na biblioteca math.h.

– Para se beneficiar de uma biblioteca é necessário inclui-la na compilação do programa.

– Quando usamos os sinais de < e >, o arquivo é procurado

somente no diretório INCLUDE. Quando o usamos entre aspas, o arquivo é procurado primeiramente no diretório atual e

depois, se não for encontrado, no diretório INCLUDE.

Sintaxe

: #include <nome_da_biblioteca> #include “nome_da_biblioteca”

Exemplos

: #include <math.h> #include <conio.h>

(21)

1. Introdução

#include <iostream.h>

{

float

F, m, a;

a = 2.5;

m = 20;

F = m*a;

cout << “Força:” << F;

}

– O arquivo iostream.h contém declarações necessárias ao uso do objeto cout e do operador de inserções <<.

– Sem essas declarações, o compilador não reconhece cout e <<.

biblioteca

declarações

(22)

1. Introdução

Sequência de Escape

– Certos caracteres não-imprimíveis, como as aspas (“), o apóstrofo (‘), a interrogação (?) e a barra invertida (\), podem ser expressas como sequência de escape.

– Uma sequência de escape sempre começa com uma barra invertida e é seguida por um ou mais caracteres especiais.

– Representam sempre caracteres únicos, mesmo que sejam escritas com dois ou mais caracteres.

#include <iostream.h>

{

float

F, m, a;

a = 2.5;

m = 20;

F = m*a;

cout << “

\n

Força:” << F;

}

Caracter Seq de Escape

Campainha \a

Retrocesso (backspace) \b

Tabulação horizontal \t

Tabulação vertical \v

Nova linha \n

Cursor para o início da linha \r Salta página de formulário \f

Nulo – Zero \0

Barra invertida \\

(23)

1. Introdução

Funções

– A unidade fundamental de programas em C++ são as funções. Um programa C++ consiste em uma ou várias funções.

#include <iostream.h>

void

main( )

{

float

F, m, a;

a = 2.5;

m = 20;

F = m*a;

cout << “Força:” << F;

}

tipo

nome_da_função

( )

{

tipo var1, var2, ..., varN;

instrução1;

instrução2;

instruçãoN;

}

– O nome de uma função pode ser qualquer uma com exceção de main, reservado para a função que inicia a execução do programa. Em todo programa C++, deve existir uma única função main.

(24)

1. Introdução

Algumas Funções

Função Tipo Finalidade

abs(i) Int Retorna o valor absoluto de i

cos(d) double Retorna o cosseno de d

sin(d) double Retorna o seno de d

tan(d) double Retorna a tangente de d

fmod(d1,d2) double Retorna o resto, com o mesmo sinal de d1

pow(d1,d2) double Retorna d1 elevado à d2

log(d) double Retorna o logaritmo natural de d

sqrt(d) double Retorna a raiz quadrada de d

tolower(c) int Converte a letra para minúscula

toupper(c) int Converte a letra para maiúscula

toascii(c) int Converte o valor do argumento para ASCII clrscr() void Limpa a tela (precisa da biblioteca “conio.h”)

(25)

1. Introdução

Lendo com cin e o Operador de Extração >>

O objeto cin (C in) manipula toda entrada do teclado por meio do operador de extração >> que conecta a entrada de dados à variável que a conterá. Usa a biblioteca iostream.h.

#include <iostream.h> #include <conio.h>

void main( ){ clrscr();

float F, m, a;

cout << “Programa da 3ª Lei de Newton”; cout << “\nDigite os valores:”;

cout << “\nMassa = “; cin >> m; cout << “\nAceleração = “; cin >> a; F = m*a; cout << “Força:” << F; }

(26)

1. Introdução

As Funções getche() e getch()

Em algumas situações, o objeto cin não se adapta

perfeitamente, pois o usuário precisa pressionar a tecla [ENTER] toda vez que desejar terminar a leitura.

A função getche() contorna este problema, pois ela retorna o caractere lido do teclado no instante em que ocorre a

digitação, sem esperar [ENTER].

A função getch() é similar a getche(), exceto pelo fato de que o caractere digitado não é impresso no vídeo.

– As duas necessitam do arquivo “conio.h”.

#include <iostream.h> #include <conio.h>

void main( ){ char ch;

cout << “\nPressione uma tecla “;

ch = getche();

cout << “A tecla pressionada foi:” << ch; }

(27)

1. Introdução

Exemplo Completo do Programa

/* Programa: Terceira Lei de Newton Autor: Sérgio Bezerra */

#include <iostream.h> #include <conio.h>

void main( ){

clrscr(); //limpa a tela

float F, m, a; //declaração das variáveis

cout << “Programa da 3ª Lei de Newton”; cout << “Digite os valores:”;

cout << “\nMassa = “; cin >> m; cout << “\nAceleração = “; cin >> a; F = m*a; cout << “Força:” << F;

cout << “\n\nPressione uma tecla para sair do programa”; getch();

}

(28)

Você é capaz!!! Estou preparado e pronto para lhe ajudar!!!!

Formalize os algoritmos na sintaxe do C/C++. Pois na próxima aula, iremos continuar nos divertindo com Progr. Estruturada.

Não tem problema se você não possuir computador e/ou

compilador... Por quê? Você pode fazer tudo no caderno e digitar o código-fonte na próxima aula.

Referências

Documentos relacionados

Um intelectual cuja prática é perfilada por relações de poder-saber. Ele, apesar de assumir um discurso generalizado, exercendo uma postura que visa interceptar

Um modelo de autômato, para o dispositivo, é representado por uma lista composta de transições organizadas também como listas. Cada uma das transições constitui-se de um símbolo

Identificou-se que os fatores de risco modificáveis para a HAS em docentes do nível superior mais citados na literatura são: sedentarismo, tabagismo, hábitos alimentares,

•  Calcula-se a quota padrão para cada uma das listas, dividindo-se o número de votos de cada lista pelo divisor padrão.. •  Atribui-se a cada lista um número de mandatos

P é classe de linguagens decidíveis em tempo polinomial por uma máquina de Turing determinística:.. NP é a classe de linguagens que têm um

De modo mais discreto, e apesar disso bastante decifrável e expressivo, Génesis 3, 16 atesta como aquela original e beatificante união conjugal das pessoas será deformada no coração

Pare de tomar Levofloxacina Tolife e consulte o seu médico imediatamente caso sinta algum dos seguintes efeitos indesejáveis graves – pode necessitar de tratamento médico

pação do IDE na 23ª edição da Come- jus, os jovens da mocidade de sábado optaram por trocar a folia do Carnaval para estudar e confraternizar com outros companheiros espíritas