Buscar

Slides-Algoritmos.pdf

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

1 
Algoritmos e Programação 
Artur Henrique Kronbauer 
2 
Computadores - Arquitetura Básica 
Componentes Básicos. 
 Processador 
 Memória 
 Dispositivos de entrada e saída 
 Armazenamento 
 Programas 
 
 
Armazenamento 
Memória 
Dispositivos de 
Entrada 
Dispositivos de 
Saída CPU 
3 
Computadores - Arquitetura Básica 
Hardware: Componente físico de um sistema de computação, 
incluindo o processador, memória, dispositivos de entrada, 
dispositivos de saída e dispositivos de armazenamento. São os 
dispositivos físicos de um computador. 
 
Exemplos: impressora, CPU, teclado, disco magnético, etc. 
 
Processador: É o centro de controle de todo o sistema, onde os 
cálculos são feitos e as decisões são tomadas. É esta parte que 
interpreta, executa e controla todas as instruções do computador. 
 CPU – Unidade Central de Processamento. 
 
Memória: A CPU usa a memória do computador para guardar as 
informações com as quais trabalha. Quando o computador é 
reinicializado ou desligado, estas informações desaparecem. 
 RAM – Random Acess Memory. 
4 
Computadores - Arquitetura Básica 
Dispositivos de entrada e dispositivos de saída: São todos os 
meios de comunicação entre o computador e os seus usuários 
(sejam pessoas ou outras máquinas). 
Dispositivos de entrada: aceitam dados e instruções do usuário. São 
exemplos o TECLADO, o MOUSE e o SCANNER. 
Dispositivos de saída: retornam dados processados para os 
usuários. São exemplos o MONITOR e a IMPRESSORA. 
 
Armazenamento: Função de guardar os dados que não estão sendo 
processados no momento. Mesmo desligando o computador, 
estas informações não se perdem. 
Meios de armazenamento: disco magnético, fita magnética, cd-rom, 
etc. 
Dispositivos de E/S (entrada e saída): unidades de disco, unidades 
de fita, unidades de cd-rom, etc. 
 
5 
Computadores - Software 
Software: Instruções que as pessoas escrevem para dizer ao 
hardware o que fazer. 
 Um conjunto específico destas instruções é chamado programa. 
 Quando o computador está usando um determinado programa, 
dizemos que ele está rodando ou executando este programa. 
 Como o programa informa aos componentes físicos da máquina o 
que fazer, sem eles o computador seria apenas uma caixa sem 
utilidade. 
 
CATEGORIAS DE SOFTWARE: 
 
 Software Básico ou Sistema Operacional 
 Software Aplicativo 
 Linguagens de Programação 
6 
Computadores - Software 
Software Básico ou Sistema Operacional: É composto por um 
conjunto de programas e rotinas que gerenciam os recursos do 
hardware do computador de modo a possibilitar sua 
utilização,aumentando sua eficiência e permitindo a comunicação 
com outros equipamentos. 
 
– As principais responsabilidades de um Sistema Operacional São: 
 Tratamento de entradas e saídas de dados; 
 Definição de espaço para armazenamento de dados na 
memória; 
 Administração da transição entre programas; 
 Controle de autenticação de usuários; 
 Gerência de Execução de programas; 
 Implementação de segurança as informações. 
 
– Os principais S.O. no mercado atualmente são: 
 Windows 2000, AIX, Solaris, Linux, etc. 
7 
Computadores - Software 
Software Aplicativo: É um conjunto de programas desenvolvidos 
para realizar, em combinação com a atividade humana, tarefas ou 
processos específicos, em geral, relacionados com o 
processamento de dados para a geração de informações. 
 
– Classificação dos softwares aplicativos: 
Administrativos Sistemas de faturamento, contas a pagar, folha de
pagamento, controle de estoque, controle de
produção, contabilidade, etc
Tecno-científicos Cálculo de estruturas, planejamento e controle de
projetos, pesquisas operacionais, problemas de
engenharia, etc
Automação Industrial Ativação, programação e controle de máquinas e
equipamentos, controle de processos, calibração, etc
Automação
Comercial
Reserva de passagens, contas correntes, pontos de
venda, caixas automáticos, etc
Apoio Educacional Assistência à instruções, ensino auxiliado pelo
computador, etc
Especiais e
Científicos
Teleprocessamento, comunicações, militares,
pesquisas espaciais, pesquisas meteorológicas, etc
Entretenimento Jogos, musica, etc
8 
Computadores - Software 
Linguagens de Programação: Proporcionam ao programador a 
possibilidade de fornecer instruções ao computador através de 
comandos ou sentenças, escritas em uma linguagem próxima à 
linguagem humana, permitindo desta forma a criação de novos 
softwares. 
 
 A linguagem que o computador entende é a linguagem de 
máquina, composta de 0 e 1. 
 
 Linguagem de baixo nível: Linguagem que utiliza código 
mneumônicos e endereços simbólicos no lugar de código binário. 
Já é mais evoluída do que a linguagem de máquina, mas ainda 
está bem próxima desta, sendo de difícil entendimento e 
requerendo um grande esforço de programação. 
 
Exemplo: linguagem assembler (montadora) 
 
9 
Computadores - Software 
Linguagem de alto nível 
- Linguagens com declarações mais próximas da língua inglesa 
e com notações padronizadas da matemática. 
- Dirige a atenção do programador mais para os passos 
necessários para a solução do problema do que aos detalhes 
de como a máquina irá executar cada operação. 
- Reduz o tempo e o esforço necessário para programação. 
- Reduz a possibilidade de erros. 
 
Exemplo: pascal, C, java, etc. 
 
COMPILADORES – programas que traduzem um programa escrito em 
linguagem de alto nível (código fonte) em instruções de linguagem de 
máquina (código objeto). 
 
 Código 
Fonte Compilação 
Código 
Objeto 
Arquivo 
Executável 
Linkedição 
Bibliotecas 
10 
Expressão da Lógica 
O que é lógica? 
Em termos usuais – falamos de lógica no nosso dia-a-dia... 
 Fulano é lógico. 
 Eu sabia que isso aconteceria. Era lógico! 
 A lógica do seu raciocínio é estranha. 
 
 LÓGICA é a forma de ordenar os pensamentos para solucionar um 
problema ou executar uma tarefa. 
 
Exemplos: João é pai de Maria 
 Pedro é pai de João 
 Portanto, Pedro é avô de Maria 
 
 E o que é LÓGICA DE PROGRAMAÇÃO? 
É o ato de programar o computador para que ele cumpra 
determinada tarefa. Para isso então é necessário usar lógica, ou 
seja, ordenar os pensamentos e identificar os passos para a 
solução do problema que será realizado pela máquina. 
11 
Expressão da Lógica 
Algoritmos: é uma sequência de instruções bem definidas que, 
executadas passo a passo, permitem a solução de um problema. 
 
- Passo-a-passo, significa que cada passo é completado antes 
que o próximo comece. 
 
Exemplo: é impossível “ver novela” antes de executar por inteiro o 
passo anterior de “ligar a TV”. 
 
- Bem-definido, significa que cada passo é completamente 
definido a partir da entrada atual e dos passos anteriores, não 
permitindo ambiguidade. 
 
Exemplo: no algoritmo mostrado na próxima transparência, a etapa 
“colocar farinha e fermento ” não está bem definida. Que tipo de 
farinha? Qual a quantidade de farinha e fermento? 
 
12 
Expressão da Lógica 
Um exemplo genérico de algoritmo é uma Receita de bolo. 
 
Algoritmo 
1) Bater duas claras em neve, 
2) Colocar duas gemas, 
3) Colocar um xícara de açúcar, 
4) Colocar duas colheres de manteiga, 
5) Colocar uma xícara de leite de coco, 
6) Colocar farinha e fermento. 
7) Colocar em tabuleiro e assar em fogo médio. 
Farinha de Trigo 
Ovos 
Manteiga 
Açúcar 
Instruções Fermento leite 
13 
Expressão da Lógica 
Passos na construção de algoritmos:
1) Entender o problema. 
2) Identificar as “entradas de dados”. 
3) Identificar as “saídas de dados”. 
4) Determinar o que deve ser feito para transformar as “entradas” em 
“saídas”. 
- Usar a estratégia do “dividir para conquistar”. 
- Observar regras e limitações. 
- Determinar todas as ações possíveis de ser realizadas. 
- Eliminar as ambiguidade. 
5) Construir o algoritmo. 
6) Testar o algoritmo. 
7) Executar o algoritmo. 
 
14 
Expressão da Lógica 
Outro exemplo de algoritmo é calcular a expressão [(10+9)-
(2*8)] em cartões conforme pode ser visto na figura abaixo. 
Pos1 Pos2 Pos3 Pos4 
Pos5 Pos6 Pos7 Pos8 
1. Pegue o número 10 e coloque em Pos1. 
 
2. Pegue o número 9 e coloque em Pos2. 
 
3. Some o conteúdo de Pos1 com o conteúdo de 
Pos2 colocando o resultado em Pos3. 
 
4. Pegue o número 2 e coloque em Pos4. 
 
5. Peque o número 8 e coloque em Pos 5. 
 
6. Multiplique o conteúdo de Pos4 e Pos5 
colocando o resultado em Pos6. 
 
7. Pegue o conteúdo de Pos3 e diminua do 
conteúdo de Pos6 e coloque o resultado em Pos8. 
 
8. Informe o conteúdo de Pos8. 
Resultado=3 
15 
Expressão da Lógica 
Formas de representação dos algoritmos: 
 
1) Linguagem natural : Especificação verbal dos passos em 
linguagem natural. 
 
2) Fluxogramas: São diagramas que representam graficamente o 
algoritmo, mostrando a sua lógica de forma gráfica, e enfatizando 
os passos individuais e o fluxo da execução. 
- Os elementos são representados por símbolos convencionais e 
os relacionamentos por linhas de conecção, permitindo visualizar 
o fluxo lógico através do tempo. 
- Símbolos: 
 
inicio / fim leitura 
decisão ação 
impressão conector 
16 
Expressão da Lógica 
3) Pseudocódigo: Linguagem especial para expressão de 
algoritmos, funciona como uma linguagem simplificada de 
programação, utilizando expressões concisas e pré-definidas para 
representar as ações e os fluxos de execução. 
 
4) Programação é a sequência de planejamento, projeto, escrita 
instalação e testes de instruções desempenhadas pelo 
computador. É uma arte e uma ciência. Arte porque existem 
muitas maneiras de se realizar um trabalho de processamento de 
dados e de se codificar instruções. Existe espaço para uma 
considerável dose de criatividade. É também uma ciência, porque 
existem algumas regras que devem ser seguidas, porque é 
necessário o uso de lógica e porque existem alguns métodos 
rigorosos de programação que asseguram a eficiência, economia 
e a utilidade dos programas gerados (Verzello 84). 
17 
Tipos primitivos e declarações na linguagem C 
Tipos Básicos 
 char – 1 byte 
 int – 2 bytes 
 float – 4 bytes,precisão de 6 dígitos 
 double – 8 bytes, precisão de 10 dígitos 
 
Declaração de Variáveis 
 
 int x,y=5; 
 A linguagem C é Case Sensintive: diferencia maiúsculo de minúsculo. 
 Uma variável (identificador) pode ser formada por letras e números, só 
pode começar com letra e o único caracter especial válido é o 
underlane ( _ ). 
 Comandos existentes na linguagem C não podem ser usados como 
identificadores. 
 Inicialização de um valor: atribuição de uma informação a variável. 
Tipo 
Lista de Variáveis 
 Tipos Estendidos 
 Long 
 Short 
 Unsigned 
 Const 
x = 7; 
Declaração e atribuição simultânea 
Atribuição 
18 
Operadores 
Operadores Aritméticos 
 Multiplicação = * 
 Divisão = / 
 Modulo da divisão = % 
 Divisão inteira = (int)(5.0 / 2) 
 Soma = + 
 Subtração = - 
 
 
Operadores Relacionais 
 == igual > maior >= maior ou igual 
 < menor <= menor ou igual != diferente 
 
Operadores Lógicos 
 && – e 
 || – ou 
 ! – não 
 Pós-fixado: 
 X++ 
 X -- 
 Pré-fixado: 
 ++ X 
 -- X 
Utiliza a variável 
e incrementa 
Incrementa e 
utiliza a variável 
A B A && B A B A || B A ! A 
F F F F F F F V 
F V F F V V V F 
V F F V F V 
V V V V V V 
 
Tabela verdade 
dos operadores 
19 
Saída de Dados - printf 
Apresentação de mensagens e resultados do processamento 
 printf(lista de controle,lista de variáveis) 
 
Caracteres de controle 
 %c – um caracter 
 %d – número inteiro 
 %e – ponto flutuante em notação científica 
 %f – ponto flutuante 
 %o – inteiro em octal 
 %x – inteiro em hexadecimal 
 %s – cadeia de caracter(string) 
 \n – escreve e pula uma linha 
 
Arquivo header 
 include <stdio.h> 
Biblioteca onde está 
contida a função. 
20 
Entrada de Dados - scanf 
Leitura de dados para armazenamento em variáveis 
 scanf(código de conversão,lista de variáveis) 
 O operador & precede todas as variáveis 
 
Códigos de conversão 
 %c – um caracter 
 %d – número inteiro 
 %e – ponto flutuante em notação científica 
 %f – ponto flutuante 
 %o – inteiro em octal 
 %x – inteiro em hexadecimal 
 %s – cadeia de caracter(string) 
 
Arquivo header 
 include <stdio.h> 
Biblioteca onde está 
contida a função. 
21 
Exemplo de um programa em C 
/* programa para conversão de um número de dias em anos */ 
 
#include <stdio.h> 
 
main () 
{ int Dias; 
 float Anos; 
 printf ("Entre com o número de dias: "); 
 scanf ("%d",&Dias); 
 Anos=Dias/365.25; 
 printf ("\n%d dias equivalem a %f anos.",Dias,Anos); 
 getchar(); 
 getchar(); 
} 
Definição da biblioteca que será utilizada 
Declaração das variáveis 
Definição da função principal 
Entrada de Dados 
Cálculo de conversão de dias para anos 
Saída de dados 
Comentário do programa 
Função usada para bloquear a 
execução do programa 
22 
Estruturas Condicionais 
Comando if if (condição) declaração; 
 É um comando que permite tomada de decisões. Caso a condição 
seja verdadeira será executado a declaração contida no comando if. 
 
Comando else if (condição) declaração_1; 
 else declaração_2; 
 Podemos pensar no comando else como sendo um complemento do 
comando if. Caso a condição do comando if seja falsa, será 
executada a declaração do comando else. 
 
#include <stdio.h> 
main () 
{ int num; 
 printf ("Digite um numero: "); 
 scanf ("%d",&num); 
 if (num>10) 
 printf ("\n O nº é maior que 10"); 
 else 
 if (num==10) 
 { printf ("\nVocê acertou!\n"); 
 printf ("O nº e igual a 10."); 
 } 
 else 
 if (num<10) 
 printf ("\n O nº é menor que 10"); 
} 
 
23 
Estruturas Condicionais 
Comando switch switch (variável) 
 { case constante_1: declaração_1; 
 break; 
 case constante_2: declaração_2; 
 break; 
 default : declaração_default; 
 } 
 
 O comando switch é próprio para se testar uma variável em relação 
a diversos valores pré-estabelecidos. 
 
#include <stdio.h> 
main () 
{ int num; 
 printf ("Digite um número: "); 
 scanf ("%d",&num); 
 switch (num) 
 { case 9: printf ("\nO nº é = a 9."); 
 break; 
 case 10: printf ("\nO nº é = a 10"); 
 break; 
 case 11: printf ("\nO nº é = a 11"); 
 break; 
 default: printf ("\nO nº não é 9, 10, 11"); 
 } 
} 
O comando 
break é 
opcional. Faz 
com que o 
switch seja 
interrompido.
A declaração 
default é opcional. 
Será executada 
apenas se as 
constantes não 
forem executada. 
24 
Estruturas de Repetição 
Comando while while (condição) 
 { declaração; 
 } 
 O while testa uma condição. Se esta for verdadeira a declaração é 
executada e faz-se o teste novamente, e assim por diante. 
 Podemos definir como sendo um laço com teste no início. Isso 
indicar que a declaração pode não ser executada. 
 
#include <stdio.h> 
main () 
{ char Ch; 
 Ch='\0'; 
 while (Ch!='q') 
 { Ch = getch(); 
 } 
} 
Esse exemplo executa o 
while até que a tecla “q” 
seja pressionada. 
25 
Estruturas de Repetição 
Comando for for (inicialização;condição;incremento) 
 { declaração; 
 } 
 O for executa a inicialização incondicionalmente e testa a condição. 
Se a condição for falsa ele não faz mais nada. Se a condição for 
verdadeira ele executa a declaração, faz o incremento e volta a 
testar a condição. Ele fica repetindo estas operações até que a 
condição seja falsa. 
 Podemos definir como sendo um laço de execução com um número 
pré definido de vezes. 
 
#include <stdio.h> 
main () 
{ int count; 
 for (count=1; count<=100; count++) 
 printf ("%d ",count); 
} 
Esse exemplo imprime na 
tela os valores de 1 a 100. 
26 
Estruturas de Repetição 
Comando do - while do 
 { declaração; 
 } while (condição); 
 
 O do-while executa a declaração, testa a condição e, se esta for 
verdadeira, volta para a declaração. 
 Podemos definir como sendo um laço com teste no final. Isso indica 
que a declaração será executada pelo menos uma vez. 
 
#include <stdio.h> 
main () 
{ int i; 
 do 
 { printf ("Escolha a fruta pelo nº:"); 
 printf (“[1]...Mamão\n"); 
 printf (“[2]...Abacaxi\n"); 
 printf (“[3]...Laranja\n\n"); 
 scanf("%d", &i); 
 } while ((i<1)||(i>3)); 
 
Esse exemplo mostra 
como fazer um menu. 
 switch (i) 
 { case 1: printf ("Você escolheu Mamão"); 
 break; 
 case 2: printf ("Você escolheu Abacaxi"); 
 break; 
 case 3: printf ("Você escolheu Laranja"); 
 break; 
 } 
 } 
 
27 
Vetores 
Um vetor é uma estrutura de dados que representa listas ou tabelas de 
valores sob um único nome de variável. Cada elemento de um vetor 
pertence ao mesmo tipo, embora você possa definir vetores de qualquer 
tipo. 
Conjunto finito e ordenado de elementos homogêneos. 
 
#include <stdio.h> 
void main () 
{ int vet[10]; 
 int count=0; 
 int totalnums; 
 do 
 { printf ("\nEntre com um numero ou -999 p/ terminar: "); 
 scanf ("%d",&vet[count]); 
 count++; 
 } while ((vet[count-1]!=-999) && (count < 10)); 
 totalnums=count-1; 
 printf ("\n Os números que você digitou foram:\n"); 
 for (count=0;count<totalnums;count++) 
 printf (" %d",vet[count]); 
} 
Declaração 
do vetor 
 0 1 2 3 4 5 6 7 8 9 10 
6 5 12 18 24 30 36 42 48 54 60 
Índices 
Informações

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando