1. EVOLUÇÃO DOS COMPUTADORES
2. Exemplos de Dispositivos Mistos: pen drive, disco de DVD e cartão de memória.
3. Funciona como tradutor de uma linguagem de alto nível em uma linguagem de baixo nível que se comunica diretamente com o processador, o compilador que permite escrever códigos utilizando linguagens mais simples como c, Java etc., sem precisar se preocupar com linguagem de maquina assembly ou binaria, o compilador é uma ferramenta que entende as duas linguagens, desse modo anunciará quando ocorrer erros de semântica no código fonte ao tentar se transformar em uma linguagem de baixo nível, após o compilador ler todas as linhas do algoritmo pode ser transferido e executado por outros computadores.
4. Alguns comandos de entrada recebem seus dados a partir dos dispositivos de entrada , que permitem a interação direta do usuário com a maquina. Alguns deles são:
4.1. Teclado
4.2. Mouse
4.3. Joystick
5. 7. Utilizar espaços em Branco Para melhorar a legibilidade e aparência do algoritmo
6. Considerado algoritmo:
6.1. Sequência ordenada
7. algoritmo, programa, bloco, inteiro, fim
8. Tipos de dados
9. Uma matriz quadrada 2x2 real, por exemplo, pode ser definida pela seguinte linha de comando: A: vetor[1..2, 1..2] de real.
10. Resulta somente a parte inteira de um número real
11. Exemplo: A ß 10 X ß ‘A’ Escreva (A) Escreva (“a letra x é”, x)
12. Alguns exemplos de algoritmos que podemos citar são: receitas culinárias, manual de instrução de aparelhos, funções matemáticas
13. Comando de entrada
13.1. Este comando permite imprimir algo em um dispositivo de saída.
14. O que são operadores aritméticos?
14.1. Operadores Artméticos são aqueles que nos permite realizar uma operação aritmética fundamental básica da matemática, aquelas que conhecemos desde cedo como soma, subtração, multiplicação e divisão. Em algoritmos eles também são simples e têm a mesma simbologia em todas as linguagens de programação ( +, -, * e / ).
15. VANTAGENS E DESVANTAGENS DAS LINGUAGENS DE ALTO NÍVEL vantagens: facilidade de aprendizagem; produtividade do programador; tempo menor para escrever códigos; facilidade de entendimento para outro programador caso precise verificar o código em questão. desvantagens: algumas ocasiões o desempenho pode ser prejudicado; exige maior tempo de processamento; ocupam maior memoria em relação as de baixo nível.
16. Possibilidades de ERROS num Programa
16.1. Erros de compilação
16.1.1. digitação ou de sintaxe da linguagem
16.2. Erros de link-edição
16.2.1. uso de bibliotecas de sub-programas
16.3. Erros de execução
16.3.1. algoritmo
17. Soma Var v:vetor[1..5] de real n:inteiro s:real Inicio escreval ("Soma de 5 números") para n de 1 ate 5 faca escreva ("Digite o número ",n,":") leia (v[n]) s<-s+v[n] fimpara limpatela escreva ("Soma: ",s) Fimalgoritmo
18. Com o diagrama podemos definir uma sequência de símbolos, com significado bem definido. Portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.
19. Decisão - Indica processos de decisão e é representado por um losango.
20. Linguagem de máquina
20.1. É uma linguagem de baixo nível que permite a comunicação direta com a máquina por ser de base binária (composta por zeros e uns). Entretanto, não é muito utilizada, na atualidade, pois é difícil de ser aprendida, trabalhada, além de ser muito suscetível a erros.
21. Início e fim
22. criar projetos
22.1. ALGORITMOX
23. Declaramos uma matriz da seguinte forma: nome_matriz: [x..y,w..z] de tipo Onde x..y são os limites de linhas é w..z são os limites de coluna. Exemplo: matriz com 5 linhas e 3 colunas: Matriz: vetor[0..4,0..2] de inteiro
23.1. Exemplos de matrizes no visualg
23.1.1. Algoritmo "Somar_Matrizes" Var a: vetor [1..3,1..5] de real b: vetor [1..3,1..5] de real c: vetor [1..3,1..5] de real i,j:inteiro Inicio para i de 1 ate 3 faca para j de 1 ate 5 faca escreva("Digite o valor da posição[",i,",",j,"] para o conjunto A: ") leia (a[i,j]) fimpara fimpara para i de 1 ate 3 faca para j de 1 ate 5 faca escreva ("Digite o valor da posição[",i,",",j,"] para o conjunto B: ") leia (b[i,j]) fimpara fimpara Escreval () Escreval("Matriz A:") Escreval ("----------------") para i de 1 ate 3 faca para j de 1 ate 5 faca escreva (a[i,j]:3) fimpara escreval () fimpara escreval("----------------") Escreval() escreval("Matriz B:") escreval("----------------") para i de 1 ate 3 faca para j de 1 ate 5 faca escreva (b[i,j]:3) fimpara escreval () fimpara escreval("----------------") para i de 1 ate 3 faca para j de 1 ate 5 faca c[i,j]<- a[i,j]+b[i,j] Fimpara fimpara Escreval() escreval ("A matriz soma de (A+B) é igual a: ") escreval("----------------") para i de 1 ate 3 faca para j de 1 ate 5 faca escreva (c[i,j]:3) Fimpara escreval() fimpara escreval("----------------") Fimalgoritmo
23.1.1.1. Digite o valor da posição[ 1, 1] para o conjunto A: 1 Digite o valor da posição[ 1, 2] para o conjunto A: 2 Digite o valor da posição[ 1, 3] para o conjunto A: 2 Digite o valor da posição[ 1, 4] para o conjunto A: 1 Digite o valor da posição[ 1, 5] para o conjunto A: 2 Digite o valor da posição[ 2, 1] para o conjunto A: 2 Digite o valor da posição[ 2, 2] para o conjunto A: 2 Digite o valor da posição[ 2, 3] para o conjunto A: 1 Digite o valor da posição[ 2, 4] para o conjunto A: 2 Digite o valor da posição[ 2, 5] para o conjunto A: 1 Digite o valor da posição[ 3, 1] para o conjunto A: 1 Digite o valor da posição[ 3, 2] para o conjunto A: 1 Digite o valor da posição[ 3, 3] para o conjunto A: 2 Digite o valor da posição[ 3, 4] para o conjunto A: 2 Digite o valor da posição[ 3, 5] para o conjunto A: 1 Digite o valor da posição[ 1, 1] para o conjunto B: 2 Digite o valor da posição[ 1, 2] para o conjunto B: 2 Digite o valor da posição[ 1, 3] para o conjunto B: 2 Digite o valor da posição[ 1, 4] para o conjunto B: 1 Digite o valor da posição[ 1, 5] para o conjunto B: 1 Digite o valor da posição[ 2, 1] para o conjunto B: 2 Digite o valor da posição[ 2, 2] para o conjunto B: 2 Digite o valor da posição[ 2, 3] para o conjunto B: 2 Digite o valor da posição[ 2, 4] para o conjunto B: 2 Digite o valor da posição[ 2, 5] para o conjunto B: 1 Digite o valor da posição[ 3, 1] para o conjunto B: 1 Digite o valor da posição[ 3, 2] para o conjunto B: 1 Digite o valor da posição[ 3, 3] para o conjunto B: 2 7Digite o valor da posição[ 3, 5] para o conjunto B: 2 Matriz A: ---------------- 1 2 2 1 2 2 2 1 2 1 1 1 2 2 1 ---------------- Matriz B: ---------------- 2 2 2 1 1 2 2 2 2 1 1 1 2 1 2 ---------------- A matriz soma de (A+B) é igual a: ---------------- 3 4 4 2 3 4 4 3 4 2 2 2 4 3 3 ---------------- >>> Fim da execução do programa !
24. Leia(x)
25. algoritmo "Média" var Media, P1, P2, P3, P4: real inicio Escreva("Digite a nota 1: ") Leia (P1) Escreva("Digite a nota 2: ") Leia (P2) Escreva("Digite a nota 3: ") Leia (P3) Escreva("Digite a nota 4:") Leia (P4) Media <- (P1 + P2 + P3 + P4) / 4 Se (Media >= 7) entao Escreval (Media," Aluno Aprovado!") Senao Escreval (Media," Aluno Reprovado!") Fimse fimalgoritmo
26. se <expressão-lógica> entao <sequência-de-comandos-1> senao <sequência-de-comandos-2> fimse
27. Problema
27.1. Mundo real
28. Operadores aritiméticos
28.1. SINAL
28.1.1. Fornece o valor +1, -1 ou 0 de acordo com valor da variável, se ela for, respectivamente, positiva, negativa ou zero
28.2. DIV
28.2.1. Retorna o quociente de uma divisão de números Inteiros
28.3. TRUNCA
28.3.1. Retorna a parte inteira de um número Fracionário
28.4. ARREDONDA
28.4.1. Realiza o arrendondamento de um número fracionário o transformando em um número inteiro
28.5. +
28.5.1. Realiza a operação de soma
28.6. -
28.6.1. Realiza Subtração
28.7. *
28.7.1. Realiza Multiplicação
28.8. /
28.8.1. Realiza Divisão
28.9. % ou MOD
28.9.1. Retorna o resto de uma divisão de números Inteiros
29. O diagrama de blocos ou fluxograma é uma forma padronizada eficaz para representar os passos lógicos de um determinado processamento (algoritmos).
30. Operadores
30.1. **
30.2. Operador de atribuição
30.2.1. <-
30.3. Funções primitivas
30.3.1. LOG(x)
30.3.1.1. Resulta o logaritmo da base10 de "X"
30.3.2. SEN(x)
30.3.2.1. Resulta o seno de X
30.3.3. ABS(x)
30.3.3.1. Resulta o valor absoluto de X
30.3.4. ARREDONDA(x)
30.3.4.1. Arrendonda um número real para um número inteiro
30.3.5. RAIZ(x)
30.3.5.1. Resulta a raiz quadrada de X
30.4. Operadores relacionais
30.4.1. Eles são utilizados para comparar STRING de caracteres e números.
30.4.2. Estes operadores sempre retornam valores lógicos( VERDADEIRO OU FALSO).
30.4.3. Operadores lógicos
30.4.3.1. Estes operadores servem para combinar resultados de expressões.
30.4.3.2. Retoma se o resultado final é verdadeiro ou falso.
31. Entrada Manual - Indica à entrada de dados via teclado e é representado por um trapezio.
32. Escreva(x) ou Imprima(x)
33. Comando de saída
33.1. Este comando determina que será utilizada uma entrada por parte do usuário para fornecer um valor a uma determinada variável.
33.1.1. Exemplo: leia (idade)
34. Vetor de vetores.
35. Conceito simplificado - Algoritmo
35.1. Passos
35.1.1. Linguagem computacional
35.1.1.1. Input
35.1.1.2. Output
35.2. Solução
35.2.1. Mundo real
36. Diagrama de Blocos
36.1. SÍMBOLOS MAIS ULTILIZADOS
36.1.1. Fluxo de Dados - Indica o sentido do fluxograma e é representado por uma seta.
36.1.2. Terminal - Indica o início ou fim de um processamento e é representado po uma elipse.
36.1.3. Processamento - Indica processamento em geral e é representado por um retangulo.
36.1.4. Entrada/Saída - Indica a operação de entrada e saída de dados e é representado por um parelelogramo.
36.1.5. Desvio - Indica o desvio para um ponto qualquer do programa e é representado por um circulo pequeno.
37. Algoritimos - Comandos Básicos
37.1. Identificadores básicos
37.1.1. Real
37.1.2. Lógico
37.1.3. Inteiro
37.1.4. Texto ou Cadeia de caracter
37.1.5. Carcater
37.2. Comandos simples
37.2.1. leia(x)
37.3. Comandos compostos
37.3.1. leia(x); y<-2*x
38. VisuAlg
38.1. O que é?
38.1.1. VisuAlg é um programa gratuito de edição, interpretação e execução de algoritmos, com uma linguagem próxima ao portugol (português estruturado).
38.2. Formato básico do pseudocódigo
38.2.1. algoritmo "semnome" // Função : // Autor : // Data : // Seção de Declarações inicio // Seção de Comandos fimalgoritmo
38.3. Principais comandos
38.3.1. escreva (<lista-de-expressões>)
38.3.2. escreval (<lista-de-expressões>)
38.3.3. leia (<lista-de-variáveis>)
38.3.4. Para ... faça Esta estrutura repete uma sequência de comandos um determinado número de vezes.
38.3.5. Enquanto ... faça Esta estrutura repete uma sequência de comandos enquanto uma determinada condição (especificada através de uma expressão lógica) for satisfeita.
38.3.6. se <expressão-lógica> entao <sequência-de-comandos> fimse
38.3.6.1. inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais. real: define variáveis numéricas do tipo real, ou seja, com casas decimais. caractere ou caracter: define variáveis do tipo string, ou seja, cadeia de caracteres. logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.
38.4. Exemplo de algoritmo no VisuAlg
38.4.1. Repita ... até Esta estrutura repete uma sequência de comandos até que uma determinada condição (especificada através de uma expressão lógica) seja satisfeita.
39. Linguagem de Programação
39.1. Baixo nível
39.1.1. Mais Próxima a linguagem do Computador
39.1.1.1. Linguagem de Maquina
39.1.1.2. Linguagem Assembly
39.1.2. são voltadas para o entendimento da máquina, sua sintaxe é mais complexa e não contam com comandos intuitivos( como por exemplo comandos como "print" ou "delete"). Sendo assim, para utilizá-las é preciso conhecer não só a linguagem, mas também o hardware com qual irá trabalhar.
39.2. Alto nível
39.2.1. Mais Próxima a linguagem Humana
39.2.1.1. Javascript
39.2.1.2. Python
39.2.2. Como são linguagens voltadas para o entendimento humano logo, são muito mais intuitivos e amigáveis principalmente para quem está iniciando na área de programação. Estas linguagens abstraem conceitos voltados para maquina e sintetizam comandos, por exemplo: "print" e "delete" são instruções comuns nessas linguagens e servem para mostrar uma informação na tela ou deletar algum dado.
39.3. especificar um conjunto de instruções
39.4. Gerações das Linguagens de Programação
39.4.1. Primeira Geração
39.4.1.1. 1940
39.4.1.2. Baixo nível
39.4.1.3. 0 e 1
39.4.2. Segunda Geração
39.4.2.1. Assembly
39.4.2.2. Primeira metade de 1950
39.4.2.3. Linguagem de montagem
39.4.2.4. Baixo Nível
39.4.2.5. Mnemônicos e símbolos
39.4.3. Terceira Geração
39.4.3.1. Linguagens
39.4.3.1.1. Java
39.4.3.1.2. C++
39.4.3.1.3. C
39.4.3.1.4. Lisp
39.4.3.1.5. Fortran
39.4.3.2. Procedurais
39.4.3.3. Segunda metade de 1950
39.4.3.4. Linguagens de alto nível
39.4.4. Quarta Geração
39.4.4.1. James Martin
39.4.4.1.1. Livro: "Applications Development Without Programmers", em 1982.
39.4.4.2. Aplicações específicas
39.4.4.3. Linguagens de alto nível
39.4.4.4. Linguagens
39.4.4.4.1. SQL
39.4.4.4.2. PostScript
39.4.4.4.3. Nomad
39.4.5. Quinta Geração
39.4.5.1. Linguagens de alto nível
39.4.5.2. Lógica com restrição
39.4.5.3. Inteligência artificial e linguística computacional
39.4.5.4. Linguagens
39.4.5.4.1. Prolog
39.4.5.4.2. OPS5
39.5. INT(x)
40. Mindmeister
40.1. Estruturas de controle
40.1.1. estrutura condicional
40.1.1.1. if, if-else, operador ternário
40.1.1.1.1. Bem definido
40.1.2. estrutura de repetição
40.1.2.1. for, while, do-while
40.1.2.1.1. return, break, continue
40.1.2.1.2. contador, sentinela
40.2. criar pasta
40.2.1. estrutura de seleção
40.2.1.1. switch-case
40.2.2. Padrões de Mapa
40.2.2.1. Estilos
40.2.2.1.1. Brainstorming
40.2.2.1.2. Mapa Mental
40.2.2.1.3. Reuniões
40.2.2.1.4. Outros
41. Matrizes no visualg
41.1. Utilizando de variáveis inteiras como i e j, por exemplo, podemos definir os elementos dessa matriz com a estrutura de repetição "para".
41.2. Algoritmo "exemplo de matriz quadrada"
41.3. Var
41.4. A: vetor[1..2, 1..2] de real
41.5. i, j: inteiro
41.5.1. Quando a estrutura de repetição está em i=1, varia-se j de 1 até 2, ou seja, define-se A(11) e (A12). Após o looping ser satisfeito, inicia-se outro com i=2, definindo-se A(21) e A(22).
41.6. Inicio
41.6.1. para i<-1 ate 2 faca
41.6.1.1. para j<-1 ate 2 faca
41.6.1.1.1. Leia (A[i,j])
41.6.1.2. fimpara
41.6.2. fimpara
41.6.3. para i<-1 ate 2 faca
41.6.3.1. para j<-1 ate 2 faca
41.6.3.1.1. Escreval ("O termo A", i, j, " é:", A[i,j])
41.6.3.2. fimpara
41.6.4. fimpara
41.7. Fimalgoritmo
41.8. O comando "Escreval ("O termo A", i, j, " é:", A[i,j])" escreve, em cada linha, o elemento A(ij) na ordem em que foi realizada a leitura.
42. Exemplos de algorítimos no visualg
42.1. Média Var v:vetor[1..10] de real n:inteiro s,m:real Inicio escreval ("Média de 10 números:") escreval() para n de 1 ate 10 faca escreva ("Digite o número ",n,":") leia (v[n]) s<-s+v[n] fimpara m<-s/n limpatela escreva ("Média: ",m) Fimalgoritmo
42.1.1. Média de nota e resultado de aprovação Var v:vetor[1..4] de real n:inteiro s,m:real Inicio escreval ("Notas") escreval () para n de 1 ate 4 faca escreva ("Digite a nota ",n,":") leia (v[n]) s<-s+v[n] fimpara m<-s/n limpatela escreval ("Resultado") escreval () se (m>7)ou(m=7) entao escreva ("Aluno aprovado, com média: ",m) senao escreva ("Aluno reprovado, com média: ",m) fimse fimalgoritmo
42.1.1.1. Juros Var j,s,v,t:real tm:inteiro Inicio escreval ("Juros") escreval () escreva ("Digite o valor: ") leia (v) escreva ("Digite a taxa de juros: ") leia (t) escreva ("Digite o tempo (meses): ") leia (tm) j<-(v*t*tm)/100 s<-v+j limpatela escreval ("Valor total a ser pago: ",s) escreval ("Valor dos juros: ",j) Fimalgoritmo
42.2. Soma Var v:vetor[1..5] de real n:inteiro s:real Inicio escreval ("Soma de 5 números") para n de 1 ate 5 faca escreva ("Digite o número ",n,":") leia (v[n]) s<-s+v[n] fimpara limpatela escreva ("Soma: ",s) Fimalgoritmo
42.2.1. Quantidade de pares e ímpares Var v:vetor [1..10] de inteiro n,p,i:inteiro Inicio escreval ("Quantidade de números pares e ímpares") escreval () para n de 1 ate 10 faca escreva ("Digite o número ",n,": ") leia (v[n]) se (v[n] mod 2<>0) entao i<-i+1 senao p<-p+1 fimse fimpara limpatela escreval ("Pares: ",p) escreval ("ímpares: ",i) Fimalgoritmo
42.2.1.1. Desconto Var v:vetor [1..5] de real n:inteiro Inicio escreval ("Valores") escreval () para n de 1 ate 5 faca escreva ("Digite o valor ",n,":") leia (v[n]) v[n]<-v[n]*0.75 fimpara limpatela escreval ("Valores com desconto") escreval () para n de 1 ate 5 faca escreval ("Valor ",n,":",v[n]) fimpara Fimalgoritmo
43. são palavras que terão uso específico no pseudocódigo e que não deverão ser usadas como identificadores para não causar confusão na interpretação
43.1. exemplo:
43.1.1. procedimento, real, texto, const, matriz
43.1.2. var, tipo, inicio, imprima, se, função
43.1.3. então, senão, enquanto, repita
43.1.4. variando, faça, caso, ate, vetor
43.1.5. procedimento, execução, etc...
43.1.6. exemplo de algumas palavras reservadas em um programa Algoritmo "soma de n° primos e mutiplicaçao dos pares do vetor [1..100]" Var j:inteiro A: vetor [1..100] de inteiro B:inteiro Inicio para j de 1 ate 100 faça escreva("digite o", j,"° numero") leia(A[j]) fimpara para j de 1 ate 100 faça se A[j] mod 2 =0 entao B<-A[j]*5 escreval("a resposta da multiplicaçao do",j,"° numero é",B) senao fimse fimpara para j de 1 ate 100 faça se (A[j] mod 2) =1 entao B<-A[j]+5 escreval("a respodta da somado",j,"° numero é",B) fimse fimpara Fimalgoritmo
44. ALGORITMO × PROGRAMA
45. Algoritmo🤔 é uma descrição passo a passo de como um computador irá executar uma operação específica🤭 Programa😅 uma entidade que implementa uma ou mais operações de forma que seja útil para as pessoas que o utilizam 😉
45.1. Novo Tópico
46. VETORES
46.1. 6. Usar comentários no início do programa para explicar o que o algoritmo faz. - Exemplo: Uma descrição do que faz o algoritmo - Explicação do significado das variáveis mais importantes - Estrutura de dados utilizadas
46.2. São arranjos que armazenam elementos na memória principal, todos com o mesmo nome, um de cada vez. O índice i indica a posição de um elemento, e N são inteiros positivos
46.2.1. Declaração de Vetor
46.2.1.1. Tipo de dado: Nome [dimensão] Tipo de dado: inteiro, Real, Caracter Nome: nome do vetor dimensão: 1..N (Tamanho do vetor)
46.2.1.2. Exemplo de declaração Real: A [1..10] Caracter: Nome[1..10] Para o visualg Real: A[1..10] de inteiro Nome: Vetor[1..10] de caracter
46.2.2. Exemplo: Este algoritmo lê 18 números e faz a soma dos mesmos. Var j, soma :inteiro V: Vetor [1..18] de inteiro Inicio Para j de 1 ate 18 faca Escreval("Digite um número", j , "inteiro") Leia (V[j]) fimpara soma<-0 para j de 1 ate 18 faca Soma<- soma + V[j] fimpara Escreval ("A SOMA DOS NÚMEROS É", soma) Fimalgoritmo
46.3. Exemplo de vetores usando caractere
46.3.1. Ex: Um vetor que leia 20 nomes e os apresente em ordem alfabética. (No Visualg) Declarações das variáveis V: vetor [1..20] de caracter x, y: inteiro c: caracter Inicio para x de 1 ate 20 passo 1 faca escreval ("digite o",x, "nome: ") leia (v[x]) fimpara para y de 1 ate 20 passo 1 faca para x de 1 ate 19 passo 1 faca se (v[x]>v [x+1]) entao c<-v [x] v[x]<-v[x+1] v[x+1]<-c fimse fimpara fimpara para x de 1 ate 20 passo 1 faca escreval ("nomes em ordem alfabetica: "v[x]) fimpara fimalgoritimo
47. ESTRUTURAS BÁSICAS DE CONTROLE
47.1. RGRAS PRÁTICAS PARA A CONTRUÇÃO DE ALGORITMOS LEGÍVEIS
47.1.1. 1. Incorporar comentários no algoritmo - objetivo: descrever o significado das variáveis utilizadas - Exemplo: { Cálculo da média } Obs.: Os comentários devem ser encerrados entre chaves.
47.1.2. 2. Escolher nomes de variáveis que traduzam o tipo de informação que ela carrega - objetivo: certificar que o algoritmo funcionará corretamente imprimindo os dados de acordo com o tipo da variável. - exemplo: var: nota matrícula
47.1.3. 3. Grifar palavras-chave - objetivo: Destacar as estruturas de controle - Exemplo: se B =-1 então Obs: Se e então são estruturas de controle. Palavras a serem sublinhadas
47.1.4. 5. Fazer algoritmos que possam ser lidos, alterados por outras pessoas além de quem o construiu.
47.1.5. 8. Escolher nomes representativos para suas variáveis.
47.1.6. 9. Utilizar um comando por linha - Objetivo: tornar o algoritmo mais legível e mais fácil de ser depurado - Exemplo: A<-14,2;I<-1;enquantoI<10 façaX<-X+1;K<-I*K;I<I+1; fim enquanto Usando um comando por linha temos : A<-14,2 I<-1 Enquanto I<10 Faça X<-X+1 K<-I*K I<-I+1 Fim Enquanto
47.1.7. 4. Alinhar os comandos de acordo com o nível de acordo com o nível a que pertencem - Objetivo: Destacar a estrutura na qual o comando está contido - Exemplo: B<- A*C Enquanto P=1 faca P<- P+1 F <- X+ Nota/2 Fim enquanto Imprima ( F, Nota)
47.1.8. 10. Utilizar parêntese - Objetivo: aumentar a legibilidade e prevenir erros - Exemplo: Usando poucos Parêntese A*B*C/(C*D*E) Usando parênteses adicionais (A*B*C)/(C*D*E)
47.1.9. 11. Alterar comentários sempre que uma modificação for feita no algoritmo
48. Tipos de dados definidos pelo usuário.
48.1. Recebe valores digitados pelos usuário, atribuindo-os às variáveis.
48.2. Pode ser dos tipos inteiro, real, cadeia de caracteres ou lógico.
48.3. Inteiro : será introduzido à variável um numero que é escrito sem componente fracional -> 4,35, -234 ,etc.
48.4. Real : será introduzido a variável um numero um valor fracionário ou não -> 10 , 4.12 , 10.9892,√2,etc.
48.5. Caracter: será introduzido à variável uma cadeia de caracteres -> joao pedro, cacau, etc.
48.6. Lógico : define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.
49. Formas de Representar uma Lógica de Programação
49.1. Frases do processamento de um programa
49.2. Pseudocodígo
49.2.1. Tipos
49.2.1.1. Operadores Relacionais são utilizados para comparar valores, o resultado de uma expressão relacional é um valor booleano (VERDADEIRO ou FALSO).
49.2.1.2. Primitivos
49.2.1.2.1. inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais
49.2.1.2.2. real - define variáveis numéricas do tipo real, ou seja, com casas decimais
49.2.1.2.3. logico - define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO
49.2.1.2.4. caractere - define variáveis do tipo string, ou seja, cadeia de caracteres
49.2.1.3. Expressões Aritméticas
49.2.1.3.1. Exemplos: 3/4+5 3/(4+5) 3\2*9 Conceitos básicos de algoritmos = 5.75 = 0.33333333 44 3\2*9 11%3^2 11%(3^2) (11%3)^2 3\2+(65-40)^(1/2) = 9 = 2 = 2 = 4 = 6
50. Comando de atribuição
50.1. Este comando atribui valores variáveis e constantes que serão manipulados pelo programa.😗
51. Dispositivos
51.1. Dispositivos de Entrada: Dentre os diversos dispositivos de Entrada e Saída, existem alguns que realizam apenas a entrada de dados, ou seja, permitem inserir/armazenar informações.
51.1.1. Exemplos de Dispositivos de Entrada: mouse, teclado, microfone, joystick e scanner).
51.2. Dispositivos de Saída: Os dispositivos de saída, por sua vez, permitem somente a saída (visualização) das informações contidas no computador.
51.2.1. Exemplos de Dispositivos de Saída: monitor (tela), impressora e caixas de som.
51.3. Estrutura de repetição - laços (loops)
51.3.1. Laço enquanto
51.3.1.1. O enquanto é utilizado quando um conjunto de comandos deve ser executados repetidamente, enquanto a expressão lógica permanecer verdadeira. Se todo comando for verdadeiro, vai ocorrer o loop infinito, o que é não dá para interromper de forma natural. Se o primeiro comando for falso, o programa não vai ser executado nenhuma vez.
51.3.1.2. Representação no Portugol ... Enquanto (condição) faca bloco de programação que será repetido Fim Enquanto
51.3.2. Repetição com teste no final
51.3.2.1. Representação no Portugol repita C1 C2 C3 . . Cn ate <condição>
51.3.2.1.1. Usada quando não se sabe quantas vezes a a instrução ou bloco irá se repetir, mas tem que ser executado pelo menos uma vez. A vantagem do repita é que não precisa iniciar a(s) variável(eis) do controle do laço antes de entrar no mesmo. O teste fica repetindo até dar verdadeiro o comando.
52. Conceitos introdutórios
53. CONCEITOS INTRODUTÓRIOS
53.1. Sistema de informação: consiste de uma sólida infraestrutura sólida e abstrata que conecta as pessoas ao redor do mundo por meu da comunicação. Sendo esse, responsável pela base da economia. Esses processos tem origem desde que os primeiros homens pisaram na terra e se intensificou com o advento da globalização.
53.1.1. Transformação Social
53.1.1.1. COMUNICAÇÃO
53.1.1.2. MULTIMÍDIA
53.1.1.3. GOVERNO
53.1.1.4. ECONOMIA
53.1.2. COMPUTADOR
53.1.2.1. Máquina que através de uma programação vai realizar passos para executar uma tarefa. Por sua agilidade no processo de informações é um grande influênciador, junto a internet, na malha global.
53.1.2.1.1. ENTRETENIMENTO
54. Cálculo de Expressões
54.1. .
54.1.1. Quando Operadores, operandos e funções, se juntam e se relacionam para resolver problemas matemático em um algoritmo, se caracterizam como uma Expressão.
54.1.1.1. Expressões logicas
54.1.1.1.1. •E (and) • ou (Or) • não (not)
54.1.1.2. Expressões aritméticas
54.1.1.2.1. •Operandos (números) •operadores (ex:+, -, *, **, /) •funcao aritmética (ex: Cos(a)) •variaveis numéricas (ex: x*y*z)
54.1.1.3. Expressões relacionais
54.1.1.3.1. •igualdade (==) •desigualdade (!=) •maior e menor (>,<) •maior ou igual ou menor ou igual(>=, <=)
55. Linguagem de programação
55.1. Conjunto de símbulos e regras de sintaxe que tem por objetivo descrever ações compreensíveis e executáveis para o computador
55.1.1. Tipos de linguagem de programação
55.1.1.1. Linguagem de máquina
55.1.1.1.1. Única compreendida pelo computador Ex: Assembly
55.1.1.2. Linguagem de baixo nivel
55.1.1.2.1. Utiliza instruções próxima da linguagem humana Ex: Fortron
55.1.1.3. Linguagem de alto nivel
55.1.1.3.1. Uso comercial ex: cobal
56. Expressões lógicas
57. Dispositivos Mistos: Também existem os dispositivos considerados mistos, ou seja, através deles podemos tanto inserir informações para dentro do computador, como extrair/visualizar dados.
58. Compiladores vs Interpretadores
58.1. Compiladores
58.1.1. Funciona como tradutor de uma linguagem de alto nível em uma linguagem de baixo nível que se comunica diretamente com o processador, o compilador que permite escrever códigos utilizando linguagens mais simples como c, Java etc., sem precisar se preocupar com linguagem de maquina assembly ou binaria, o compilador é uma ferramenta que entende as duas linguagens, desse modo anunciará quando ocorrer erros de semântica no código fonte ao tentar se transformar em uma linguagem de alto nível, após o compilador testar todas as linhas e verificar que está tudo certo é criado um executável que pode ser compartilhado entre outros computadores e ser executado.
58.1.1.1. Linguagem fonte: C, Pacal, Java, etc.
58.1.1.1.1. COMPILADOR
58.2. Interpretadores
58.2.1. O interpretador funciona como um tradutor e conversa as duas linguagens e mostra um resultado que pode ser “rodado” apenas no computador que o código foi digitado, o interpretador lê linha por linha para se certificar que está certo o código fonte. só depois de conferir que todas as linhas estão certas é criado o executável.
58.2.1.1. Código digitado em linguagem média ou alta
58.2.1.1.1. INTERPRETADOR
59. Algoritmo de pesquisa
59.1. Pra fazermos qualquer pesquisa em vetor(ou matriz) são necessários: a) O vetor onde será feita a pesquisa. b) O número de elementos desse vetor que devem ser pesquisados. c) O elemento procurado d) Um índice que vai ser preenchido com a posição onde o elemento foi encontrado ou retornará com zero, caso o elemento não exista.
59.1.1. Pesquisa sequencial simples: Na pesquisa sequencial simples, como o vetor a ser pesquisado não está ordenado pelo elemento procurado, teremos de comparar um a um o ELEMPROC com cada elemento de VET. Portanto para um elemento inexistente teremos de fazer TOTELEM testes e para um elemento existente faremos, na média, TOTELEM/2 testes. Procedimento PESQSEQ (V : VET)
59.1.1.1. ex: Início Inteiro: TOTELEM, POS, J <Tipo básico> : ELEMPROC) Leia(ELEMPROC) {Executa a Pesquisa da primeira ocorrência de ELEMPROC em VET e retorna em POS o índice onde foi encontrada ou 0 se não existe} Enquanto(Pos=0) e(J<=TOTELEM)Faça Se VET[J]=ELEMPROC Então POS<-J Senão J<-J+1 FimSe FimEnquanto Fim
59.1.1.1.1. O problema fica mais fácil quando temos que determinar todas as ocorrências de um elemento em um vetor, pois teremos que, obrigatoriamente, levar o vetor até o fim (Elimina-se do laço o teste POS = 0), mas teremos de guardar em um vetor todas as posições onde o elemento foi encontrado ou, o mais comum, processarmos a ocorrência dentro do procedimento (após POS<-J)