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


Técnicas de Programação Parte1, Notas de estudo de Informática

Apostilas de Computação da Pontifícia Universidade Católica do Paraná PUCPR sobre Técnicas de Programação, Estrutura do algoritmo em portugol, Comandos de controle, Algoritmos em portugol, Programação em linguagem c.

Tipologia: Notas de estudo

2013

Compartilhado em 11/12/2013

Futebol13
Futebol13 🇧🇷

4.5

(204)

196 documentos

1 / 46

Toggle sidebar

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

Não perca as partes importantes!

bg1
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ
CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA MECATRÔNICA
APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO
CURITIBA
JANEIRO/2002
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

Pré-visualização parcial do texto

Baixe Técnicas de Programação Parte1 e outras Notas de estudo em PDF para Informática, somente na Docsity!

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA MECATRÔNICA

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO

CURITIBA

JANEIRO/

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA

DEPARTAMENTO DE ENGENHARIA MECATRÔNICA

APOSTILA DE TÉCNICAS DE PROGRAMAÇÃO

ELABORAÇÃO: PROFESSOR MARCELO RUDEK

COLABORAÇÃO: GELSON LUIZ CARNEIRO

ADRIANO ZELAZOWSKI PEREIRA

CURITIBA

JANEIRO/

I. Contrato Didático

I. INFORMAÇÕES GERAIS ..................................................................................................

  • Todas as aulas (teoria e prática) serão em laboratório; então todos deverão estar familiarizados com o manuseio dos computadores, pois o conteúdo da aula será fornecido pela internet através do endereço http://www.las.pucpr.br/rudek
  • Trazer disquetes para armazenar os trabalhos de aula;
  • Quem necessitar pode (e deve) usar os laboratórios da PUC para aprender a usar o computador; cada laboratório possui um monitor responsável que pode ajudar nas dúvidas, fora dos horários de aula;
  • Observar as normas de utilização do laboratório e das aulas de TP1, principalmente em relação ao zelo pelos equipamentos e atenção às atividades de aula;
  • Informações sobre o curso de Engenharia de Controle e Automação (ECA) e de atividades do Laboratório de Automação e Sistemas (LAS) podem ser obtidas diretamente no site do LAS através do endereço www.las.pucpr.br.

II. SISTEMA DE AVALIAÇÃO..............................................................................................

  • A avaliação é contínua durante todo o curso. Será composta de provas, trabalhos, exercícios em sala (participação);
  • A nota semestral será composta de 3 notas parciais:, sendo: o 1.ª parcial : prova (80%) + exercícios (20%); o 2.ª parcial: prova (60%) + exercícios (10%) + trabalhos (30 %); o 3.ª parcial: prova (50%) + exercícios (20%) + trabalhos (30 %); OBS: a forma de avaliação das parciais, pode variar de acordo com o andamento das aulas e nível de aprendizado0 da turma.
  • Os trabalhos serão divulgados na minha página; Trabalhos entregues com atraso não serão cosiderados, ou terão nota reduzida (2,0 pts por dia de atraso), de acordo com critério do professor.
  • Faltas: no máximo 12 faltas (4 dias de aula). Mais de 12 faltas o aluno estará automaticamente reprovado por falta, independente das notas que possua.

III. O PROGR AMA DE APRENDIZAGEM (P.A.)...............................................................

Este programa de aprendizagem explora o estudo de algoritmos e programação em linguagem C. Para aprovação neste semestre o aluno deverá estar apto a raciocinar e desenvolver a sua capacidade de abstração, para a criação de algoritmos e programas elementares.

As técnicas de programação serão vistas através da utilização de uma pseudolinguagem em português, denominada "Portugol". Assim, o aluno poderá escrever algoritmos e aplicar as técnicas de desenvolvimento para serem usadas com qualquer linguagem de programação. Para este P.A., será utilizada a linguagem C padrão, em ambiente Windows.

Na seção seguinte será apresentado o conteúdo programático de Técnicas de Programação I e II (TPI e TPII ).

1. INTRODUÇÃO À PROGRAMAÇÃO: ALGORITMOS

Várias definições de algoritmos estão presentes na literatura (ver bilbliografia indicada). De forma geral um algoritmo pode ser definido como:

Um algoritmo representa de forma estruturada, um padrão de comportamento de eventos ou sequência de ações, que levam a um resultado esperado.

Resumindo: algoritmo = como definir o problema, esquematizar, exercício do raciocínio; técnicas de programação = como operacionalizar, recursos, exercício da implementação.

1.1. EXEMPLOS .........................................................................................................................

a) Seqüência de ações para chegar ao trabalho/universidade:

Acordar → levantar → tomar café → pegar o ônibus Ou → chegar ao destino → pegar o carro

Note que, para cada ação acontecer, é necessário que a ação imediatamente anterior tenha sido executada. Note também que, cada ação pode conter outros eventos associados (outros algoritmos).

b) Manuais de montagem e utilização de equipamentos;

c) Qual o padrão de comportamento utilizado para gerar a sequência abaixo? 1, 5, 9, 13, 17, 21, 25 ... resposta: _________

1.2. ALGORITMOS EM PORTUGOL ................................................................................

Como no item 1 ".... um algoritmo é de forma geral, uma descrição passo a passo de como um problema pode ser solucionado. A descrição deve ser finita, e os passos devem ser bem definidos sem ambiguidades" [Terada]. A razão da existência do algoritmo vem da dissonância entre um estado desejado e aquele observado na realidade. Algoritmo não é a solução de um problema, mas é o meio de obtê-la. A resolução de um problema envolve vários parâmetros que devem ser organizados através de alguma técnica formal.

As técnicas de desenvolvimento estruturado de algoritmos, tem o objetivo de:

2.2.1. O AMBIENTE DE DESENVOLVIMENTO ...............................................................................

  • Facilitar o seu entendimento pelos operadores;
  • Antecipar a correção;
  • Facilitar manutenção e modificações;
  • Permitir que o desenvolvimento seja feita por uma equipe de pessoas.

Uma técnica formal afasta a possibilidade de uma ambiguidade. Ou seja, a partir de dadas condições iniciais a execução do algoritmo será realizada por um mesmo "caminho" (sequência de ações), que deve resultar num mesmo estado final. Uma destas técnicas é o portugol.

1.3. PORTUGOL ....................................................................................................................

Portugol é uma pseudolinguagem que permite ao programador pensar no problema em si e não no equipamento que irá executar o algoritmo. Devem ser considerados a sintaxe (em relação à forma) e a semântica (em relação ao conteúdo ou seu significado). Em portugol a sintaxe é definida pela linguagem e a semântica depende do significado que quer se dar ao algoritmo.

No portugol e nas linguagens de programação, basicamente têm-se comandos e variáveis que operacionalizam a execução de um algoritmo. Estes comandos são

1.4.1.1. Tipos de Variáveis .......................................................................................................

Variáveis são componentes das linguagens de programação, que identificam os valores que estão sendo manipulados pelos programas. Uma variável, como o próprio nome sugere, contém valores que variam de acordo com a execução do programa. Uma variável deve possuir um tipo específico. As variáveis em portugol, são divididas em 4 tipos principais, (embora na linguagem C existam modificações para estes tipos principais).

No portugol, os tipos básicos de variáveis são:

  • Inteiro : Qualquer número inteiro (negativo, nulo ou positivo). Exemplo: -100, 0, 1, 2, 1250.
  • Real : Qualquer número real, nulo ou positivo. Exemplo: -10, -1.5, 11.2, 0,1, 2, 50.
  • Caracter: Caracteres alfanuméricos. Exemplo: casa, Win31, 123, alfa#2, etc...
  • Lógico: valor lógico verdadeiro ou falso Exemplo: x > y?

Exemplos: inteiro: valor; // a variável valor é do tipo inteiro real: media; // a variável media é do tipo real caracter: nome_aluno; // a variável nome_aluno é do tipo caracter lógico: maior; // a variável maior é do tipo booleano

1.4.1.2. Identificadores de Variáveis ........................................................................................

O identificador de uma variável, se refere ao nome de como ela vai ser conhecida no programa. È importante não esquecer que:

a) Não é possível definir variáveis de diferentes tipos com o mesmo identificador (nome); O exemplo: real A; inteiro A; causaria erro na programação, mas pode ser

usado real A1; inteiro A2; ou normalmente um nome mais significativo, como real media, inteiro valor, caracter nome, etc.

b) Tomar alguns cuidados em relação à sintaxe da linguagem, por exemplo, não é possível ter identificador como: caracter ?nome, real valor*, inteiro 1x,.

c) .Letras maiúsculas e minúsculas são tratadas de forma diferente, então Media é diferente de media, como também de MEDIA.

Cada variável definida no programa usa um local da memória, que é acessada através do nome dado a variável. O espaço de memória ocupado pelo conteúdo da variável, depende do tamanho destes tipos de dados, que variam de acordo com o tipo do processador a com a implementação do compilador. Como referência inicial para este estudo sobre variáveis, pode-se considerar pelo ANSI C, o seguinte:

  • Tipo Inteiro com 2 bytes;
  • Tipo real com 4 bytes;
  • Tipo caracter com 1 byte;

Exemplo:

Pode-se supor a memória como uma matriz, como a figura abaixo, onde cada célula possui tamanho de 1 byte (8 bits):

Para armazenar o valor inteiro A= 1, necessita-se de 2 bytes (1 inteiro = 2 bytes na memória); Para armazenar o valor real B= 1, necessita-se de 4 bytes (1 real = 4 bytes na memória);

  • no C ANSI; no C++ Builder os tamanhos das variáveis são diferentes.

A B

área ocupada por outros programas.

1.5.2. OPERADORES ARITMÉTICOS ............................................................................................

Os símbolos das operações básicas são:

  • A multiplicação é dada através do operador ***** (asterisco); Exemplo: z <- x * y;
  • A soma é realizada através do operador + ; Exemplo: z <- x + y;
  • A subtração é dada através do operador - ; Exemplo: z <- x - y;
  • A divisão para real será dada por / ; Exemplo: z <- x / y;
  • A divisão para inteiro será dada por div ; Exemplo: z <- x div y;
  • O resto de uma divisão é dada pelo comando mod. Exemplo: z <- x mod y;
  • O cálculo de xy^ é dado pelo símbolo ^. Exemplo: z <- x^y;
  • A raiz de uma valor é extraída através do comando raiz(). Exemplo: z <- raiz(x);

Exemplos a) Desenvolva um algoritmo em portugol para somar dois valores inteiros (10 + 5)

inicio inteiro x,y,z; x = 10; y = 5; z <- x + y; fim

Reservar 3 espaços de memória do tipo inteiro, chamados x, y e z.

Atribuição de valores iniciais às variáveis.

O resultado da soma de x + y será armazenado no espaço de memória z

Obs:

  • O incoveniente deste algoritmo é que sempre fornecerá o mesmo resultado, o que não é interessante. De maneira mais correta, os valores de x e y podem ser fornecidos pelo usuário, permitindo ao algoritmo que efetue a soma de dois números quaisquer.
  • Neste exemplo podemos observar que o resultado da soma de x + y será armazenado em z. Como o usuário ficará sabendo da resposta? É necessário usar comandos de escrita, para apresentar os resultados.

1.5.3. ENTRADA E SAÍDA DE DADOS..........................................................................................

Na construção de algoritmos, é conveniente que o usuário possa informar dados externos, para serem operados pelo programa. Assim, um programa pode receber um dado informado por um operador através de um comando de leitura. Da mesma forma, pode ser necessário conhecer o resultado de determinada operação executada pelo computador, então será necessária uma forma de exibir os dados.

Cada linguagem tem uma forma específica para entrada e saída de dados. Em algoritmos usaremos os comandos genéricos leia() e escreva(), para realizar a interface com o usuário.

Exemplo:

início real A, B, C; leia(A); leia(B); c <- A + B; escreva(B); fim

Lê os valores fonecidos pelo usuário e armazena em A e B.

Apresenta a resposta (tela, impressora, arquivo, etc)