
1. Tipos de dados definidos pelo usuário.
1.1. Recebe valores digitados pelos usuário, atribuindo-os às variáveis.
1.2. Pode ser dos tipos inteiro, real, cadeia de caracteres ou lógico.
1.3. Inteiro : será introduzido à variável um numero que é escrito sem componente fracional -> 4,35, -234 ,etc.
1.4. Real : será introduzido a variável um numero um valor fracionário ou não -> 10 , 4.12 , 10.9892,√2,etc.
1.5. Caracter: será introduzido à variável uma cadeia de caracteres -> joao pedro, cacau, etc.
1.6. Lógico : define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.
2. Linguagem de Programação
2.1. Baixo nível
2.1.1. Mais Próxima a linguagem do Computador
2.1.1.1. Linguagem de Maquina
2.1.1.2. Linguagem Assembly
2.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.
2.2. Alto nível
2.2.1. Mais Próxima a linguagem Humana
2.2.1.1. Javascript
2.2.1.2. Python
2.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.
2.3. especificar um conjunto de instruções
2.4. Gerações das Linguagens de Programação
2.4.1. Primeira Geração
2.4.1.1. 1940
2.4.1.2. Baixo nível
2.4.1.3. 0 e 1
2.4.2. Segunda Geração
2.4.2.1. Assembly
2.4.2.2. Primeira metade de 1950
2.4.2.3. Linguagem de montagem
2.4.2.4. Baixo Nível
2.4.2.5. Mnemônicos e símbolos
2.4.3. Terceira Geração
2.4.3.1. Linguagens
2.4.3.1.1. Java
2.4.3.1.2. C++
2.4.3.1.3. C
2.4.3.1.4. Lisp
2.4.3.1.5. Fortran
2.4.3.2. Procedurais
2.4.3.3. Segunda metade de 1950
2.4.3.4. Linguagens de alto nível
2.4.4. Quarta Geração
2.4.4.1. James Martin
2.4.4.1.1. Livro: "Applications Development Without Programmers", em 1982.
2.4.4.2. Aplicações específicas
2.4.4.3. Linguagens de alto nível
2.4.4.4. Linguagens
2.4.4.4.1. SQL
2.4.4.4.2. PostScript
2.4.4.4.3. Nomad
2.4.5. Quinta Geração
2.4.5.1. Linguagens de alto nível
2.4.5.2. Lógica com restrição
2.4.5.3. Inteligência artificial e linguística computacional
2.4.5.4. Linguagens
2.4.5.4.1. Prolog
2.4.5.4.2. OPS5
2.5. INT(x)
3. 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.
4. Linguagem de máquina
4.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.
5. O que são operadores aritméticos?
5.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 / ).
6. Operadores aritiméticos
6.1. SINAL
6.1.1. Fornece o valor +1, -1 ou 0 de acordo com valor da variável, se ela for, respectivamente, positiva, negativa ou zero
6.2. DIV
6.2.1. Retorna o quociente de uma divisão de números Inteiros
6.3. TRUNCA
6.3.1. Retorna a parte inteira de um número Fracionário
6.4. ARREDONDA
6.4.1. Realiza o arrendondamento de um número fracionário o transformando em um número inteiro
6.5. +
6.5.1. Realiza a operação de soma
6.6. -
6.6.1. Realiza Subtração
6.7. *
6.7.1. Realiza Multiplicação
6.8. /
6.8.1. Realiza Divisão
6.9. % ou MOD
6.9.1. Retorna o resto de uma divisão de números Inteiros
7. Decisão - Indica processos de decisão e é representado por um losango.
8. Resulta somente a parte inteira de um número real
9. Diagrama de Blocos
9.1. SÍMBOLOS MAIS ULTILIZADOS
9.1.1. Fluxo de Dados - Indica o sentido do fluxograma e é representado por uma seta.
9.1.2. Terminal - Indica o início ou fim de um processamento e é representado po uma elipse.
9.1.3. Processamento - Indica processamento em geral e é representado por um retangulo.
9.1.4. Entrada/Saída - Indica a operação de entrada e saída de dados e é representado por um parelelogramo.
9.1.5. Desvio - Indica o desvio para um ponto qualquer do programa e é representado por um circulo pequeno.
10. Operadores
10.1. **
10.2. Operador de atribuição
10.2.1. <-
10.3. Funções primitivas
10.3.1. LOG(x)
10.3.1.1. Resulta o logaritmo da base10 de "X"
10.3.2. SEN(x)
10.3.2.1. Resulta o seno de X
10.3.3. ABS(x)
10.3.3.1. Resulta o valor absoluto de X
10.3.4. ARREDONDA(x)
10.3.4.1. Arrendonda um número real para um número inteiro
10.3.5. RAIZ(x)
10.3.5.1. Resulta a raiz quadrada de X
10.4. Operadores relacionais
10.4.1. Eles são utilizados para comparar STRING de caracteres e números.
10.4.2. Estes operadores sempre retornam valores lógicos( VERDADEIRO OU FALSO).
10.4.3. Operadores lógicos
10.4.3.1. Estes operadores servem para combinar resultados de expressões.
10.4.3.2. Retoma se o resultado final é verdadeiro ou falso.
11. 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
12. Algoritimos - Comandos Básicos
12.1. Identificadores básicos
12.1.1. Real
12.1.2. Lógico
12.1.3. Inteiro
12.1.4. Texto ou Cadeia de caracter
12.1.5. Carcater
12.2. Comandos simples
12.2.1. leia(x)
12.3. Comandos compostos
12.3.1. leia(x); y<-2*x
13. Exemplo: A ß 10 X ß ‘A’ Escreva (A) Escreva (“a letra x é”, x)
14. 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.
15. Comando de entrada
15.1. Este comando permite imprimir algo em um dispositivo de saída.
16. Comando de saída
16.1. Este comando determina que será utilizada uma entrada por parte do usuário para fornecer um valor a uma determinada variável.
16.1.1. Exemplo: leia (idade)
17. Comando de atribuição
17.1. Este comando atribui valores variáveis e constantes que serão manipulados pelo programa.😗
18. Conceito simplificado - Algoritmo
18.1. Passos
18.1.1. Linguagem computacional
18.1.1.1. Input
18.1.1.2. Output
18.2. Solução
18.2.1. Mundo real
19. Escreva(x) ou Imprima(x)
20. Considerado algoritmo:
20.1. Sequência ordenada
21. Início e fim
22. Vetor de vetores.
23. Problema
23.1. Mundo real
24. Entrada Manual - Indica à entrada de dados via teclado e é representado por um trapezio.
25. Mindmeister
25.1. Estruturas de controle
25.1.1. estrutura condicional
25.1.1.1. if, if-else, operador ternário
25.1.1.1.1. Bem definido
25.1.2. estrutura de repetição
25.1.2.1. for, while, do-while
25.1.2.1.1. return, break, continue
25.1.2.1.2. contador, sentinela
25.2. criar pasta
25.2.1. estrutura de seleção
25.2.1.1. switch-case
25.2.2. Padrões de Mapa
25.2.2.1. Estilos
25.2.2.1.1. Brainstorming
25.2.2.1.2. Mapa Mental
25.2.2.1.3. Reuniões
25.2.2.1.4. Outros
26. O diagrama de blocos ou fluxograma é uma forma padronizada eficaz para representar os passos lógicos de um determinado processamento (algoritmos).
27. 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:
27.1. Teclado
27.2. Mouse
27.3. Joystick
28. ALGORITMO × PROGRAMA
29. Possibilidades de ERROS num Programa
29.1. Erros de compilação
29.1.1. digitação ou de sintaxe da linguagem
29.2. Erros de link-edição
29.2.1. uso de bibliotecas de sub-programas
29.3. Erros de execução
29.3.1. algoritmo
30. Conceitos introdutórios
31. 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 😉
31.1. Novo Tópico
32. 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.
33. Alguns exemplos de algoritmos que podemos citar são: receitas culinárias, manual de instrução de aparelhos, funções matemáticas
34. 7. Utilizar espaços em Branco Para melhorar a legibilidade e aparência do algoritmo
35. ESTRUTURAS BÁSICAS DE CONTROLE
35.1. RGRAS PRÁTICAS PARA A CONTRUÇÃO DE ALGORITMOS LEGÍVEIS
35.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.
35.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
35.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
35.1.4. 5. Fazer algoritmos que possam ser lidos, alterados por outras pessoas além de quem o construiu.
35.1.5. 8. Escolher nomes representativos para suas variáveis.
35.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
35.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)
35.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)
35.1.9. 11. Alterar comentários sempre que uma modificação for feita no algoritmo
36. VETORES
36.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
36.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
36.2.1. Declaração de Vetor
36.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)
36.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
36.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
36.3. Exemplo de vetores usando caractere
36.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
37. 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
38. se <expressão-lógica> entao <sequência-de-comandos-1> senao <sequência-de-comandos-2> fimse
39. 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
39.1. Exemplos de matrizes no visualg
39.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
39.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 !
40. Tipos de dados
41. VisuAlg
41.1. O que é?
41.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).
41.2. Formato básico do pseudocódigo
41.2.1. algoritmo "semnome" // Função : // Autor : // Data : // Seção de Declarações inicio // Seção de Comandos fimalgoritmo
41.3. Principais comandos
41.3.1. escreva (<lista-de-expressões>)
41.3.2. escreval (<lista-de-expressões>)
41.3.3. leia (<lista-de-variáveis>)
41.3.4. Para ... faça Esta estrutura repete uma sequência de comandos um determinado número de vezes.
41.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.
41.3.6. se <expressão-lógica> entao <sequência-de-comandos> fimse
41.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.
41.4. Exemplo de algoritmo no VisuAlg
41.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.
42. criar projetos
42.1. ALGORITMOX
43. Uma matriz quadrada 2x2 real, por exemplo, pode ser definida pela seguinte linha de comando: A: vetor[1..2, 1..2] de real.
44. Matrizes no visualg
44.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".
44.2. Algoritmo "exemplo de matriz quadrada"
44.3. Var
44.4. A: vetor[1..2, 1..2] de real
44.5. i, j: inteiro
44.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).
44.6. Inicio
44.6.1. para i<-1 ate 2 faca
44.6.1.1. para j<-1 ate 2 faca
44.6.1.1.1. Leia (A[i,j])
44.6.1.2. fimpara
44.6.2. fimpara
44.6.3. para i<-1 ate 2 faca
44.6.3.1. para j<-1 ate 2 faca
44.6.3.1.1. Escreval ("O termo A", i, j, " é:", A[i,j])
44.6.3.2. fimpara
44.6.4. fimpara
44.7. Fimalgoritmo
44.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.
45. Leia(x)
46. algoritmo, programa, bloco, inteiro, fim
47. 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
47.1. exemplo:
47.1.1. procedimento, real, texto, const, matriz
47.1.2. var, tipo, inicio, imprima, se, função
47.1.3. então, senão, enquanto, repita
47.1.4. variando, faça, caso, ate, vetor
47.1.5. procedimento, execução, etc...
47.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
48. Exemplos de algorítimos no visualg
48.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
48.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
48.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
48.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
48.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
48.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
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. Dispositivos
50.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.
50.1.1. Exemplos de Dispositivos de Entrada: mouse, teclado, microfone, joystick e scanner).
50.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.
50.2.1. Exemplos de Dispositivos de Saída: monitor (tela), impressora e caixas de som.
50.3. Estrutura de repetição - laços (loops)
50.3.1. Laço enquanto
50.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.
50.3.1.2. Representação no Portugol ... Enquanto (condição) faca bloco de programação que será repetido Fim Enquanto
50.3.2. Repetição com teste no final
50.3.2.1. Representação no Portugol repita C1 C2 C3 . . Cn ate <condição>
50.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.
51. CONCEITOS INTRODUTÓRIOS
51.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.
51.1.1. Transformação Social
51.1.1.1. COMUNICAÇÃO
51.1.1.2. MULTIMÍDIA
51.1.1.3. GOVERNO
51.1.1.4. ECONOMIA
51.1.2. COMPUTADOR
51.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.
51.1.2.1.1. ENTRETENIMENTO
52. Linguagem de programação
52.1. Conjunto de símbulos e regras de sintaxe que tem por objetivo descrever ações compreensíveis e executáveis para o computador
52.1.1. Tipos de linguagem de programação
52.1.1.1. Linguagem de máquina
52.1.1.1.1. Única compreendida pelo computador Ex: Assembly
52.1.1.2. Linguagem de baixo nivel
52.1.1.2.1. Utiliza instruções próxima da linguagem humana Ex: Fortron
52.1.1.3. Linguagem de alto nivel
52.1.1.3.1. Uso comercial ex: cobal
53. Cálculo de Expressões
53.1. .
53.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.
53.1.1.1. Expressões logicas
53.1.1.1.1. •E (and) • ou (Or) • não (not)
53.1.1.2. Expressões aritméticas
53.1.1.2.1. •Operandos (números) •operadores (ex:+, -, *, **, /) •funcao aritmética (ex: Cos(a)) •variaveis numéricas (ex: x*y*z)
53.1.1.3. Expressões relacionais
53.1.1.3.1. •igualdade (==) •desigualdade (!=) •maior e menor (>,<) •maior ou igual ou menor ou igual(>=, <=)
54. 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.
55. Exemplos de Dispositivos Mistos: pen drive, disco de DVD e cartão de memória.
56. Expressões lógicas
57. Compiladores vs Interpretadores
57.1. Compiladores
57.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.
57.1.1.1. Linguagem fonte: C, Pacal, Java, etc.
57.1.1.1.1. COMPILADOR
57.2. Interpretadores
57.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.
57.2.1.1. Código digitado em linguagem média ou alta
57.2.1.1.1. INTERPRETADOR
58. EVOLUÇÃO DOS COMPUTADORES
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)