Baixe o app para aproveitar ainda mais
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
Compartilhar