Você está na página 1de 28

Algoritmos e programação de

computadores aplicados à engenharia I

Prof.: Wilson Prates de Oliveira


Sumário
1 Aula 1 ........................................................................................................................ 1

2 Aula 2 ........................................................................................................................ 2

2.1 Português estruturado (Portugol) ....................................................................... 3

2.2 Diagrama de Blocos ........................................................................................... 4

2.3 Exercícios........................................................................................................... 6

3 Aula 3 ........................................................................................................................ 7

3.1 Tipos de Dados primitivos ou dados básicos ..................................................... 8

3.2 Variáveis ............................................................................................................ 9

3.3 Constantes ........................................................................................................ 10

3.4 Operadores aritméticos .................................................................................... 10

3.5 Expressões aritméticas ..................................................................................... 11

3.6 Exercícios: ....................................................................................................... 12

4 Aula 4 ...................................................................................................................... 13

4.1 Interpretação x compilação .............................................................................. 14

4.2 Funções de entrada e saída de dados ( scanf e printf ) ..................................... 17

4.3 Exercícios......................................................................................................... 18

5 Aula 5 ...................................................................................................................... 20

5.1 Operadores relacionais ..................................................................................... 21

5.2 Desvio condicional simples ............................................................................. 21

5.3 Desvio condicional composto .......................................................................... 23

5.4 Exercícios......................................................................................................... 24
1

1 Aula 1

Tema:

Objetivos:

Conteúdo:

 Introdução

 Arquitetura básica de um computador (Arquitetura de Von Neumann)

 Unidades de medidas (Bit, Byte, Kbyte, Gbyte, Tbyte)

 Conceito de Algoritmo e lógica de programação

 Exercícios:
2

2 Aula 2

Tema:

Objetivos:

Conteúdo:

 Formas de representação de algoritmos

• Português estruturado (Portugol)

• Diagramas de Blocos

• Linguagens de programação (especificamente Linguagem c)

 Tipos de Dados primitivos ou dados básicos

• Inteiro

• Real

• Caractere

• Lógico

 Variáveis

 Constantes
3

2.1 Português estruturado (Portugol)

Representação de um algoritmo na forma textual denominada pseudocódigo

(metalinguagem ou linguagem de especificação). O estilo pseudocódigo é uma

linguagem de projeto de programação e não uma linguagem de programação. Portanto,

não deve ter o mesmo rigor sintático que uma linguagem de programação.

Programa < nome do programa >

Var

< bloco de declaração de variáveis >

Inicio

<sequência de comandos>

Fim

Listagem 1: Template para criação de um programa em pseudocódigo.

Exemplo 1: Desenvolver um programa que em portugol que faça a leitura de dois

valores inteiros e escreva a soma dos valores:

Programa Soma_Numeros

Var

A, B: Inteiro

Inicio

leia A

leia B
4

escreva (A + B)

Fim

Listagem 2: Pseudocódigo de um algoritmo que soma dois números.

Exemplo 2: Altere o programa do exemplo 1 para ler a entrada de 3 valores inteiros e

escrever a soma dos 3 valores.

2.2 Diagrama de Blocos

Forma gráfica de representar programas de computador. O diagrama de blocos são

baseados em formas geométricas que descrevem uma operação ou conjunto de

operações que serão realizadas durante o processamento do algoritmo. Devido a sua

facilidade de compreensão os diagramas de blocos se tornaram muito popular entre as

equipes de desenvolvedores.

Simbolo Significado Descrição

Representa o inicio e fim do fluxo lógico.

Terminal Também utilizado na definição de sub-

rotinas.

Representa a operação de entrada manual de


Entrada manual
dados. Normalmente via teclado.

Representa a execução de uma operação ou


Processamento
grupo de operações.
5

Representa uma operação de saída visual de


Exibição
dados.

Representa desvios condicionais para outros

Decisão pontos do programa de acordo com o

resultado de um teste lógico.

Representa a modificação de instruções ou

Preparação grupo de instruções existentes em relação a

sua atividade subsequencial.

Define um grupo de operações estabelecidas


Processo predefinido
como sub-rotinas.

Representa a entrada ou saída em outra


Conector
parte do programa

Representa o vinculo entre as partes do

Linha diagrama e indica a direção do fluxo de

processamento.

Exemplo 3: Construa o diagrama de blocos para o algoritmo do exemplo 1.

Solução:
Inicio

A, B

X←A+B

Fim
6

2.3 Exercícios

1) Construa o diagrama de blocos para o algoritmo do exemplo 2.

2) Represente em diagrama de blocos um programa que mostra mensagem “Alô

Mundo”.

3) Represente em diagrama de blocos um programa que leia um valor qualquer a partir

do teclado.
7

3 Aula 3

Tema: Tipos de dados básicos, variáveis, constantes, operadores e expressões

aritméticas.

Objetivos:

Conteúdo:

 Tipos de Dados primitivos ou dados básicos

• Inteiro

• Real

• Caractere

• Lógico

 Variáveis

 Constantes

 Operadores aritméticos

 Expressões aritméticas

 Exercícios em sala.

 Exercícios para casa.


8

3.1 Tipos de Dados primitivos ou dados básicos

Definição: dados são elementos do mundo exterior, que representam as informações

que serão processadas dentro do computador. O dados primitivos são classificados em 3

tipos: numéricos, caracteres e lógicos.

Real

• Numéricos

Inteiro

• Caractere

• Lógico

Inteiros: são dados numéricos negativos e positivos (conjunto Z).

Exemplo: -5, -4, 0, 1,6.

Reais: são dados numéricos negativos, positivos e fracionários (Conjunto R).

Exemplo: -10, -9, -0.5, 1, 3, 7, 9.78.

Caractere/Cadeia: são todas as sequências de símbolos alfanuméricos delimitados por

“” (aspas duplas).

Exemplo: “9999-4567”, “39480”.

Lógico: são dados que assumem apenas dois valores do tipo sim e não, verdadeiro e

falso, 1 e 0.
9

3.2 Variáveis

São áreas da memória do computador reservadas para armazenar dados que sofrem

variações (alterações nos valores) durante a execução de um programa. As variáveis são

identificadas por um nome ou identificador que segue uma determinada regra de

formação. Outra característica das variáveis é o tipo que deve estar de acordo com dado

que será armazenado na mesma.

Regras de formação de nomes para variáveis:

1. Utilizar um ou mais caracteres limitando se a restrição da linguagem de

programação utilizada;

2. O primeiro caractere do nome não pode ser um numero;

3. Não pode haver espaços em branco;

4. Não pode ser uma palavra reservada, nome de programa ou sub-rotina;

5. Na composição de dos nomes devem ser utilizadas apenas letras, números e

o caractere sublinhado “_”;

Sintaxe de declaração:

Em português estruturado:

< lista de identificadores separados por vírgula > : < tipo >

Exemplo: Media, Salario_Do_Funcionario: real.

Em linguagem C:

<tipo> <espaço ou tabulação> < lista de identificadores separados por vírgula >

Exemplo: float Media, Salario_Do_Funcionario;.


10

3.3 Constantes

São áreas da memória do computador reservadas para armazenar dados que não sofrem

variações (alterações nos valores) durante a execução de um programa. As constantes

são identificadas por um nome ou identificador que segue a mesma regra de formação

de nomes utilizada para as variáveis.

Sintaxe de declaração:

Em português estruturado:

const < identificador > = < valor >

Exemplo: const PI = 3.1415.

Em linguagem C:

#define < identificador > < espaço ou tabulação > <valor>

Exemplo: #define PI 3.1415.

3.4 Operadores aritméticos

Indicam as operações matemáticas que devem ser realizadas em durante a execução do

programa em um computador. Os operadores aritméticos são classificados em duas

categorias: binários e unários;

• Binários: são operadores que necessitam de dois operandos. Exemplo:

Adição (+), subtração (-), multiplicação (*).


11

• Unários: são operadores que necessitam de um único operando. Exemplo:

subtração (-) quando utilizado em uma operação de inversão do estado de um

valor numérico de negativo para positivo e vice-versa, exponenciação (↑).

Tabela 3.1: Operadores aritméticos.

Operador Operação Descrição Tipo Prioridade


Manutenção do sinal
+ “+n” ou “n” Unário -

- -n Inversão de sinal Unário -

← x←n Atribuição do valor de x a n Binário -

↑ x↑n Exponenciação de   Unário 1

↑ x ↑ 1  Radiciação √ Unário 1

/ x/n Divisão de “x” por “n” Binário 2

* x*n Multiplicação de “x” por “n” Binário 2

+ x+n Adição de “x” com “n” Binário 3

- x-n Subtração de “n” de “x” Binário 3

Div x div n Divisão inteira de “x” por “n” Binário 4

3.5 Expressões aritméticas

São expressões definidas a partir das relações existentes entre variáveis e constantes

numéricas através do uso dos operadores aritméticos. As expressões aritméticas

utilizadas na programação de computadores são escritas de uma forma um pouco

diferente da conhecida na matemática. Por exemplo, a expressão X = { 43 . [ 55 : ( 30 +

2 ) ] } será escrita como X ← ( 43 * (55 / (30 +2) ) ).

O símbolo (←) indica que o resultado da expressão será armazenado na variável X.


12

3.6 Exercícios:

1) Converta a expressão aritmética da formula da área da circunferência: Área =   ,

onde R é o raio da circunferência e é uma constante com valor aproximado igual a

3.1415. Para o formato utilizado em programação de computadores.

.
2) Converta a expressão aritmética da formula da área do triângulo:   , onde b é o


tamanho da base do triangulo e h é altura do triangulo. Para o formato utilizado em

programação de computadores.

√
3) A formula de Bhaskara   é uma das maneiras de calcular as raízes de uma


equação de 2º grau. Escreva a formula de Bhaskara no formato de expressão aritmética

utilizando em programação de computadores.

Exercícios para casa (pág. 54, 55 e 56 do livro texto).


13

4 Aula 4

Tema: Laboratório de programação 1.

Objetivos: introduzir os conceitos básicos de compilação, linkagem e interpretação de

programas. Apresentar a IDE DevC++ que será utilizada nas aulas de laboratório e as

funções de entrada e saída padrão.

Conteúdo:

 Interpretação x compilação

 Template de um programa escrito em linguagem c

 Funções de entrada e saída de dados ( scanf e printf )


14

4.1 Interpretação x compilação

Uma diferença entre as linguagens C e php, por exemplo, é que C é compilada e php e

interpretada. De maneira geral, computadores só executam linguagem de máquina (0

e1) que são específicas para os modelo ou família de processadores. Cada fabricante

define um determinado conjunto de instruções. Assim, qualquer programa escrito em C

ou em php devem ser convertidos em linguagem de máquina para serem executados.

No caso da interpretação ilustrada na Figura 1, um programa interpretador (IM)

escrito em uma linguagem de máquina M lê o script Sphp e simula a execução de suas

instruções em uma máquina real. Na compilação ilustrada na Figura 2, um programa

compilador (CM) escrito em linguagem de máquina M lê o arquivo fonte (AF) escrito em

linguagem de alto nível C e traduz suas instruções para linguagem de máquina M.

Como resultado de saída da compilação temos um arquivo objeto AO. Após a

compilação o arquivo objeto AO passa por um processo de linkagem onde um programa

LM insere todas as bibliotecas referenciadas no programa fonte para formar o programa

executável PE.

Sphp IM
Script Interpretador Saída

Dados de
entrada

Figura 1: Execução de programas com linguagem interpretada.


15

PF CM AO
Arquivo Compilador Arquivo
fonte Objeto

PE
Saída Programa LM
executável Linkador

Dados de
entrada

Figura 2: Compilação, linkagem e execução de programas em uma linguagem

compilada.

Entrada de dados:

Saída de um programa:

Template de um programa escrito em linguagem c

/*

estrutura de um programa escrito em linguagem c

*/

/* lista de bibliotecas */

#include <<nome_da_biblioteca_1>>

#include <<nome_da_biblioteca_2>>

#include <<nome_da_biblioteca_n>>

/* constantes */
16

#define <indetificador> <valor>

/* lista de variaveis globais, visivéis em todas as partes do programa */

int main(int argc, char *argv[])

{/* inicio do programa */

<instrução 1>

<instrução 2>

<instrução n>

return <valor inteiro>

} /* fim do programa */

Listagem 1: Template de um programa escrito em linguagem c.

Exemplo 1: escreva um programa em linguagem c que receba como entrada o valor do

raio de uma circunferência, calcule e mostre o valor da área da circunferência.

Considere o valor de PI = 3.1415.

#include <stdio.h>

#include <stdlib.h>

#define PI 3.1415

float area;

int main(int argc, char *argv[])

{
17

float R;

/* a função printf escreve uma mensagem na saída padrão (neste curso monitor) ou

o conteúdo de uma variável em um formato determinado. Esta função é parte da

biblioteca stdio.h

*/

printf("Entre com o valor do raio :");

/* a função scanf lê dados da entrada padrão (neste curso teclado) em um formato

determinado e armazena em variável. O operador & é uma referencia ao endereço da

variável.

Esta função é parte da biblioteca stdio.h

*/

scanf("%f", &R);

/* calculo da area da circunferencia */

area = PI*R*R;

printf("O valor da area da circunferencia e = %f \n", area);

system("PAUSE");

return 0;

Listagem 2: Programa para calcular a área da circunferência.

4.2 Funções de entrada e saída de dados ( scanf e printf )

A printf é utilizada para mostrar uma mensagem, um valor armazenado em uma variável

ou constante e até mesmo o endereço de uma variável. O cabeçalho desta função é


18

mostrado a seguir: printf ("string de controle", lista de argumentos separados por

virgula);

A string de controle contém tanto caracteres para serem impressos na saída

padrão como especificadores de formato que especificam como os demais argumentos

devem ser apresentados. O primeiro parâmetro é sempre uma string de caracteres.

Quando for necessário que printf() exiba um valor constante ou variável, é

preciso fornecer informações sobre o tipo do valor que será impresso no primeiro

parâmetro. Estas informações são fornecidas através do uso dos especificadores de

formato. Os especificadores de formato têm a forma de um sinal de porcentagem (%)

seguido por uma letra. Por exemplo, para exibir um valor inteiro, usa-se o %d. Da

mesma forma para exibir um valor em ponto flutuante, pode-se usar %f.

A função scanf( ) é uma das funções de entrada de dados da linguagem c. Está

função pode ser usada para ler qualquer tipo de dado inserido por meio da entrada

padrão (teclado), frequentemente é usada para a entrada de números inteiros ou de ponto

flutuante. O cabeçalho desta função é mostrado a seguir: scanf (“especificadores do

formato de leitura”,lista de argumentos separados por virgula e precedidos do

operador de referencia de endereço &);

4.3 Exercícios

1) Escreva em linguagem C um programa que mostre na tela a mensagem “Alô Mundo.

2) Escreva um programa em linguagem C que leia dois valores inteiros digitados pelo

usuário e mostre a soma dos valores.


19

3) Escreva um programa em linguagem C que receba como entrada o valor do raio (R)

de uma circunferência calcule e mostre na tela o valor da área da circunferência.


20

5 Aula 5

Tema: Estruturas de tomada de decisão

Objetivos:

Conteúdo:

 Operadores relacionais;

 Desvio condicional simples;

 Desvio condicional composto;

 Desvio condicional encadeado e por seleção;

 Operadores lógicos;
21

5.1 Operadores relacionais

São operadores que estabelecem uma relação matemática entre o conteúdo de variáveis,

constantes e resultados de expressões aritméticas. A Tabela 5.1 mostra os operadores

matemáticos utilizados em português estruturado e diagrama de blocos e os equivalentes

em linguagem C.

Tabela 5.1: Operadores relacionais

Linguagem C Português estruturado e diagrama de blocos Descrição

== = Igual

> > Maior que

< < Menor que

>= >= Maior ou igual

<= <= Menor ou igual

!= <> Diferente

5.2 Desvio condicional simples

O desvio condicional simples estabelece uma condição ou teste lógico para que uma

instrução ou conjunto de instrução sejam executadas, caso o resultado da condição ou

teste lógico seja verdadeiro. O diagrama de blocos da Figura 5.1 ilustra o desvio

condicional simples.
22

N S
Condição

Instrução ou conjunto
de instruções

Figura 5.1: Representação do desvio condicional simples em diagrama de blocos.

Sintaxe em linguagem C:

if (<condição igual a verdadeira>)

<instrução ou conjunto de instruções>

Sintaxe em português estruturado:

se (<condição igual a verdadeira>) então

<instrução ou conjunto de instruções>

fim_se

Exemplo 5.1: Escreva um algoritmo que leia a soma de valores do tipo real e em

seguida calcule a soma e mostre o resultado caso a soma seja maior que 10.
23

5.3 Desvio condicional composto

O desvio condicional composta estabelece que duas instruções ou conjuntos de

instruções diferentes sejam executados de acordo com o resultado de uma condição ou

teste lógico. Caso o resultado da condição ou teste lógico seja verdadeiro a instrução 1

ou o conjunto de instruções 1 será executado. Caso o resultado da condição ou teste

lógico seja falso, a instrução 2 ou o conjunto de instruções 2 será executado. O desvio

condicional composto é ilustrado no diagrama de blocos da Figura 5.2.

N S
Condição

Instrução 2 ou conjunto Instrução 1 ou conjunto


de instruções 2 de instruções 1

Figura 5.2: Representação do desvio condicional composto em diagrama de

blocos.

Sintaxe em linguagem C:

if (<condição igual a verdadeira>)

<instrução e ou conjunto de instruções 1>

}
24

else

<instrução 2 ou conjunto de instruções 2 >

Sintaxe em português estruturado:

se (<condição igual a verdadeira>) então

<instrução e ou conjunto de instruções 1>

senão

<instrução 2 ou conjunto de instruções 2 >

fim_se

Exemplo 5.2: Escreva um algoritmo que leia dois valores do tipo real, em seguida

realize a soma dos dois valores. Caso o resultado da soma seja maior ou igual a 10, o

resultado deve ser acrescido de 5. Caso contrário, o resultado será subtraído de 7. Ao

final deve se mostrar o valor do resultado.

5.4 Exercícios

1) Um determinado supermercado da a seus clientes um desconto de 5% em compras

cujo valor total seja maior que R$ 100,00. Escreva um algoritmo que leia o valor total

da compra do cliente e mostre o valor a ser pago e o valor do desconto dado ao cliente.
25

2) Escreva uma algoritmo que leia a nota média de um aluno e escreva uma das

seguintes saídas: Caso a nota média seja maior ou igual a 5.0 mostre a mensagem

“Aluno Aprovado”; Caso contrário mostre a mensagem “Aluno Reprovado”.

3) Escreva um algoritmo que leia dois valores reais e mostre o maior dos valores lidos.

4) Escreva uma algoritmo que leia valor inteiro e mostre na tela se o valor lido é par ou

impar.

Sugestão: para resolver os exercícios 4 e 5 utilize o operador mod em português

estruturado e diagrama de blocos ou % na linguagem C. Este operador retorna o resto

da divisão inteira.

Exemplo: 5 mod 2 = 1 em português estruturado;

5 % 2 = 1 em linguagem C;

5) Escreva um algoritmo que leia dois valores inteiros e mostre o quociente e o resto da

divisão entre o primeiro e o segundo valor.

Você também pode gostar