Ao final desta disciplina, os alunos serão capazes de:
• Compreender alguns conceitos fundamentais de lógica de programação e algoritmos
• Desenvolver raciocínio lógico estruturado para resolução de problemas
• Criar e executar algoritmos simples utilizando o VisuAlg
• Implementar estruturas de controle (condicionais e repetições)
• Trabalhar com variáveis, tipos de dados e operadores
• Analisar e otimizar algoritmos básicos
A lógica é a ciência que estuda as formas válidas de raciocínio e argumentação.
Ela é fundamental em várias áreas do conhecimento, incluindo a matemática, a filosofia e a ciência da computação.
Lógica é a base do pensamento estruturado e racional.
Na programação, a lógica é essencial para a criação de algoritmos e para a resolução de problemas de forma eficiente.
Usando a Lógica para criar um ambiente de estudo organizado.
-Para estudar, é necessário um local adequado.
-Uma mesa organizada ajuda a manter o foco.
-Ter os materiais necessários à disposição evita distrações.
-Um ambiente silencioso facilita a concentração
A lógica de programação (ou, por extensão, lógica computacional) é uma forma de organizar pensamentos que permite a tradução do raciocínio lógico humano para a linguagem das máquinas, permitindo que elas realizem alguma determinada tarefa.
Lógica por associação de ideias.
-Um celular sem bateria não pode ser usado.
-Um carro sem combustível não anda.
-Um aluno sem estudar pode ter dificuldades na prova.
Relação lógica entre elementos.
-Todos os smartphones são dispositivos eletrônicos.
-O celular que você usa é um smartphone.
-Logo, seu celular é um dispositivo eletrônico.
A decomposição consiste em quebrar um problema complexo em partes menores e mais gerenciáveis. Isso facilita a análise e a resolução, pois fica mais fácil lidar com cada parte separadamente.
Isso mostra que algoritmo não nasce no computador — nasce na organização do pensamento.
A abstração é o processo de remover detalhes desnecessários e focar apenas no que realmente importa para resolver um problema.
Quero saber se o aluno foi aprovado.
Aplicando abstração: para saber aprovação, só importa a nota. Todo o resto é descartado.
Quando você faz uma ligação,Você não pensa em:
Isso também é abstração.Abstrair é enxergar apenas o que resolve o problema.
O reconhecimento de padrões consiste em identificar semelhanças entre problemas diferentes para reutilizar soluções já conhecidas.
Problemas diferentes
Aprendendo um padrão, você resolve vários exercícios.
Um algoritmo é uma sequência lógica,
finita e bem definida de passos que devem ser seguidos para resolver um problema ou realizar uma tarefa.
Algoritmo é organizar o pensamento em passos.
Consistem em uma série de instruções, raciocínios ou operações que visam um objetivo, em geral a solução de um problema.
Algoritmo é a aplicação da lógica para resolver um problema específico.
Para isso, essa série de instruções deve ser finita e operada de maneira sistemática; é um processo sistemático para a resolução de um problema ou uma sequência
ordenada de passos a ser observada para a realização de uma tarefa.
Não é só no ambiente digital que os algoritmos estão presentes.
Você provavelmente já os usou em diversos momentos da sua vida.
Consiste em :
1- Analisar a descrição do problema;
2- Escrever em uma linguagem natural o passo a passo a ser seguido para a resolução do problema.
A vantagem da utilização desse tipo de algoritmo está na facilidade, pois usa uma língua natural, como o português.
A desvantagem é que, a língua natural é passível de interpretações diferentes, o que pode dificultar na transcrição do algoritmo para o programa.
Consiste em:
1- Analisar a descrição do problema e escrever o passo a passo
2- Criar uma solução através de símbolos gráficos pré-definidos.
A vantagem do uso desse tipo de algoritmo está no entendimento facilitado pela utilização de elementos gráficos.
Pseudocódigo ou Linguagem de Programação é uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software / aplicativos). Um software pode ser desenvolvido para rodar em um computador, dispositivo móvel ou em qualquer equipamento que permita sua execução.
Lógica: Para escovar os dentes, é necessário usar pasta de dente e uma escova.
Algoritmo:
1-Pegar a escova de dentes.
2-Colocar pasta de dente na escova.
3-Escovar os dentes por alguns minutos.
4-Enxaguar a boca.
5-Guardar a escova de dentes.
Lógica: Você sabe que, para cozinhar qualquer macarrão, precisa de água quente e um tempo de cozimento adequado.
Algoritmo:
1-Pegar um pacote de miojo.
2-Esquentar a água.
3-Colocar o miojo na panela.
4-Esperar 3 minutos.
5-Adicionar o tempero e misturar.
6-Comer desesperadamente.
Podemos dizer que a lógica ajuda a entender o problema e encontrar soluções e algoritmo organiza essas ideias em passos organizado para resolver o problema e/ou atingir o objetivo .
Fazer café
Esquentar a água.
Colocar o filtro no suporte.
Colocar o pó de café no filtro.
Despejar a água quente no filtro.
Esperar o café coar.
Servir na xícara e beber.
Tomar banho
Ligar o chuveiro.
Pegar a roupa.
Ensaboar o corpo.
Pegar a toalha.
Secar o corpo.
Vestir a roupa limpa.
Lavar o carro
Passar o pano no carro.
Ligar a mangueira.
Pegar o material de uso na lavagem.
Molhar o carro.
Secar o carro.
Podemos transformar qualquer rotina em um algoritmo, pois ele é apenas uma sequência lógica de passos para alcançar um objetivo.
No entanto, a ordem dos passos é fundamental para que o algoritmo funcione corretamente. Para ilustrar esse conceito, alteramos propositalmente a sequência dos passos em algumas rotinas, como "Tomar Banho" e "Lavar o Carro".
Em alguns algoritmos, a ordem dos passos pode ser alterada sem prejudicar o resultado final.
Mas, existem casos em que, se a sequência das ações não for respeitada, o resultado pode ser inesperado ou até mesmo desastroso.
Imagine tomar banho antes de tirar a roupa...
Passar o pano no carro antes de enxaguá-lo...
Calçar o tênis antes das meias...
Essas inversões tornam a execução do processo incorreta ou sem sentido.
Isso mostra que um algoritmo bem estruturado não é apenas uma lista de ações, mas sim uma sequência lógica que deve ser seguida corretamente para alcançar o resultado esperado.
O algoritmo deve ter um fim, ou seja, não pode entrar em um loop infinito.
Exemplo: Se você quer um algoritmo para somar dois números, ele precisa chegar a um resultado final.
Cada passo do algoritmo deve ser claro e sem ambiguidades.
Exemplo ruim: “Colocar um pouco de açúcar no café” (quanto é “um pouco”?)
Exemplo bom: “Adicionar 2 colheres de chá de açúcar no café.”
O algoritmo deve resolver o problema de forma rápida e com menos recursos possíveis.
Exemplo: Se você quer encontrar um nome em uma lista de 10.000 nomes, um algoritmo que busca nome por nome seria lento. Mas se estiver organizada alfabeticamente, a busca será mais rápida.
Bem estruturado e ordenado
O algoritmo deve ter uma sequência lógica de passos.
Exemplo ruim: “Adicionar pó de café, depois colocar a água, depois esquentar a água.” (A ordem está errada!)
Exemplo correto: Primeiro esquenta a água, depois coloca o pó de café e então despeja a água.
Um bom algoritmo deve funcionar para diferentes entradas de dados e não apenas para um único caso específico.
Exemplo ruim: Um algoritmo que só calcula a soma de 2 + 2.
Exemplo bom: Um algoritmo que recebe qualquer dois números e retorna a soma.
1-Ligar o celular.
2-Desbloquear a tela.
3-Entrar no aplicativo Ifood.
4-Escolher um restaurante ou um item.
5-Realizar o pagamento na aba do carrinho.
1-Escolha o aplicativo que quer usar.
2-Abra a loja de aplicativos do seu dispositivo.
3-Procure ele na loja.
4-Baixe o aplicativo.
5-Abra o aplicativo de comida.
6-Crie uma conta.
7-Escolha um restaurante.
8-Olhe o cardápio.
9-Escolha o prato.
10-Coloque no carrinho.
11-Finalize o pedido.
12-Coloque o endereço.
13-Coloque a forma de pagamento.
14-Pague o pedido
espere o pedido chegar.
15-Pegue o pedido com o entregador
16-Coma a comida.
1-Ligar o aparelho. 2-Escolher o idioma.
3-Conectar a internet.
4-Fazer login na conta.
5-Aceitar os termos de uso.
6-Restaurar dados (opcional).
7-Finalizar a configuração.
1- Abra a caixa do smartphone.
2-Pressione o botão de ligar.
3-Coloque o idioma da sua preferência.
4-Conecte a uma rede wifi ou dados móveis.
5-Insira ou configure um cartão SIM.
6-Transfira os dados de um outro aparelho (opcional).
7-Fazer o login na conta Google ou ID Apple.
8-Configurar segurança ou biometria.
9-Atualizar o sistema e aplicativos.
10-E por fim, personalizar o aparelho.
Lógica: Para pedir comida é necessário um aparelho celular com internet.
Algorítimo:
1-Abrir o aplicativo "iFood".
2-Escolher a comida de sua preferência.
3-Adicionar a sacola.
4-Editar o pedido.
5-Adicionar seu endereço.
6-Adicionar forma de pagamento.
7-Realizar o pagamento.
8-Aguardar o recebimento do pedido em seu endereço.
1- Pego o celular
2-Escolho o idioma.
3-Conecto o telefone a internet.
4-Copio os dados do aparelho antigo e passo para o novo.
5-Faço login na minha conta no google.
6-Defino a senha do celular novo.
Após olharmos algumas respostas .....
Nem sempre temos todas as informações e na maioria dos casos precisamos usar a entrada de dados através de variáveis.
No processo de pedir comida, precisamos saber o que a pessoa quer pedir, certo?
E se ela quiser um hambúrguer ao invés de pizza ?
E o local de entrega do lanche ? Ele não é fixo ( constante ) , certo ?
Essa informação precisa ser flexível ! E é aí que entram as variáveis !
Na lista de músicas , as músicas escolhidas são sempre as mesmas ? Claro que não.
Observem que nos exercícios respondidos a maioria respondeu :
"Abrir o app, selecionar o lanche - a comida e confirmar o pedido."
Não tivemos respostas assim :
"Abrir o app, selecionar uma PIZZA e confirmar o pedido."
Na atividade anterior, vocês descreveram os passos para habilitar um celular novo. Agora, vamos analisar quais informações podem mudar de uma pessoa para outra.
Lógica:
O smartphone é novo ,já está com o usuário, possui um número ( chip ).
Algoritmo:
1-Ligar o celular.
2-Escolher o idioma.
3-Conectar-se a uma rede Wi-Fi.
4-Inserir o chip e desbloqueá-lo.
5-Fazer login com uma conta (Google, Apple, etc.).
6-Restaurar ou configurar como novo.
As variáveis são espaços , lugares na memória do computador para guardamos "valores" ( caracteres , números, booleanos e datas ).
qtde_pessoas_churrasco
qtde_horas_de_churrasco
acompanhamentos
As variáveis também podem receber valores após o cálculo de uma fórmula :
- total_gasto
- troco
Em um algoritmo computacional , temos :
Informações de Entrada ,
Processamento da lógica , Informações de Saída.
Escreval("Preço Sanduiche")
Leia(preco_sanduiche)
Escreval("Qtde Sanduiche")
Leia (qtde_de_sanduiche)
Observe que NÃO tivemos ainda um processamento mas , somente entrada e saída. Certo ?
Leia(preco_sanduiche)
Leia(preco_liquido)
Leia(qtde_de_sanduiche)
Leia(qtde_de_liquido)
As variáveis (algoritmo computacional) guardam informações que podem ser dos tipos :
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: define variáveis do tipo string, ou seja, cadeia de caracteres.
lógico: define variáveis do tipo lógico, ou seja, com valor VERDADEIRO ou FALSO.
Informações sobre ...
Uma escola quer um algoritmo para calcular a média das notas dos alunos. As disciplinas são semestrais e possuem 2 notas a serem computadas.
Lógica ...
Precisaremos de entrar com 2 notas, que podem tem casas decimais e com essas notas calcular a média.
Para pintar uma parede, sabemos que 1 litro de tinta cobre 5m². Precisamos criar um algoritmo que mostre a quantidade de tinta que precisaremos compra.
Os engenheiros frequentemente precisam calcular o peso de barras de aço para projetos estruturais.
Para simplificar esse cálculo, podemos usar a seguinte fórmula: P = 0,00617 x d² x h
Pela lógica
Para calcular a quantidade de areia temos algumas variáveis. Pela lógica , precisaremos de cimento , areia e brita. Pela lógica devemos conhecer a quantidade média usada para ser usada em 1 m³.
Vamos definir como se os sacos de cimento fossem vendidos em padrões de 50 kg, ok ?
Vamos fazer ,inicialmente , o mais simples e aos poucos iremos melhorar , dentro do nosso conhecimento.
Ok ?!
Vamos tentar juntos criar um algoritmo computacional , um pequeno programa de computador para calcular a quantidade de tijolos necessários para construir uma parede.
Os valores lógicos / booleanos são um conceito fundamental na lógica computacional e na programação. O termo "booleano" vem do matemático George Boole, que desenvolveu a "Álgebra Booleana" no século XIX. Esse sistema de lógica usa apenas dois valores:
Verdadeiro (True)
Falso (False)
Na computação, os valores booleanos são essenciais para tomada de decisões, pois permitem comparar valores e controlar o fluxo do programa.
Como exemplo, suponha que a, b e c sejam variáveis do tipo inteiro.
Então, temos que a =2, a>b e c<=b são todos exemplos de expressões relacionais.
Na expressão
a =2,
estamos comparando o valor da variável a com a constante 2. O resultado desta comparação é
o valor lógico verdadeiro se o valor de a é igual a 2; caso contrário, o resultado é o valor lógico
falso.
Na expressão
a >b,
estamos comparando os valores das variáveis a e b. O resultado desta comparação é o valor lógico
verdadeiro se o valor de a é maior do que o de b. Caso contrário, o resultado é o valor lógico
falso.
Na expressão
c <=b,
estamos comparando os valores das variáveis c e b. O resultado desta comparação é o valor lógico
verdadeiro se o valor de c é menor ou igual ao valor de b. Caso contrário, o resultado é o valor
lógico falso.
Responda apenas "Verdadeiro" ou "Falso" para as seguintes questões:
a) O Brasil está na América do Sul.
b) Vocês são alunos de Odontologia.
c) Banana é um legume.
d) Uma semana tem 7 dias.
e) Dia 25 de dezembro é comemorado o Natal.
Cada uma dessas perguntas permite apenas duas respostas: Verdadeiro ou Falso. Isso significa que elas são expressões booleanas, pois resultam em um dos dois valores possíveis.
As expressões booleanas podem ser formadas através de comparadores:
a expressão 5 = 5 tem como resultado booleano "verdadeiro".
a expressão 5 > 6 tem como resultado booleano "falso".
a expressão 8 > 4 tem como resultado booleano "verdadeiro".
a expressão 7 <> 2 tem como resultado booleano "verdadeiro".
Comparadores em algoritmos:
= (igual)
<> (diferente) ou != (diferente)
> (maior que)
< (menor que)
>= (maior ou igual)
<= (menor ou igual)
Exemplo prático: Comparando notas
Agora, vamos aplicar o conceito de valores booleanos em um programa simples. Suponha que queremos verificar se um aluno obteve nota suficiente para ser aprovado. Para isso, definimos uma média mínima e comparamos a nota do aluno com essa média.
O resultado dessa comparação será um valor booleano (Verdadeiro ou Falso).
A media <- 6.0 e a nota <- 5.0 , então nota > media terá qual valor booleano ?
a - Crie um algoritmo que leia um número inteiro e mostre na tela o seu dobro e a sua terça parte.
b- Faça um algoritmo que leia o salário de um funcionário, calcule e mostre o seu novo salário, com 15% de aumento.
c-Faça um algoritmo que leia a largura e altura de uma parede, calcule e mostre a área a ser pintada e a quantidade de tinta necessária para o serviço, sabendo que cada litro de tinta pinta uma área de 2 m quadrados.
d-Crie um programa que leia o número de dias trabalhados em um mês e mostre o salário de um funcionário, sabendo que ele trabalha 8 horas por dia e ganha R$ 35,00 por hora trabalhada
e- Crie um programa que leia o preço de um produto, peça quanto de desconto será dado no preço total , calcule e mostre o novo valor do produto com desconto
Agora que vimos um sobre os valores booleanos, podemos usar essa informação para tomar decisões em programas.
Para isso, utilizamos a estrutura SE (ou if em algumas linguagens de programação).
Nesse exemplo, atribuímos 2 valores a 2 variáveis ( linha 5 e linha 6 )
Na linha 7 , usando o comando Se ( desvio condicional ) e usando uma expressão booleana ( nota >= media ) , condicionamos o nosso programa a escrever "Aprovado" se o valor de nota for maior ou igual ao valor da media.
Nesse novo exemplo, mantivemos o mesmo código até a linha 8.
Diferentemente do exemplo anterior que o programa somente mostrava "APROVADO" caso a condição booleana (nota>=media) fosse VERDADEIRA, nesse exemplos caso a condição booleana seja FALSA a palavra "Reprovado" será mostrada na tela.
Desafio 1
Verificar se um número é positivo ou negativo. O algoritmo deve mostrar "POSITIVO" ou "NEGATIVO".
Desafio 2
Determinar se um aluno passou ou não com base em duas notas de uma disciplina. O algoritmo deve dizer se foi "APROVADO" ou "REPROVADO".
Desafio 3
No algoritmo do troco , altere para verificar se o valor pago é suficiente, caso não seja avise "Valor Insuficiente".
Devemos entender que, ao criarmos alguma "condição" para desviar nosso "caminho" de nosso algoritmo, algumas tarefas serão executadas - realizadas e outras não.
Se estiver sem chuva ,irei de bicicleta elétrica para o trabalho, senão irei de carro. Veja que a pessoa criou uma condição ( estar sem chuva ) para definir de qual modo irá para o trabalho : de bicicleta OU de carro.
O algoritmo agora criou outras 'condições' depois que alguma condição ocorreu. Na linha 12 se a condição media_aluno >= media_escola o program irá executar o que está na linha 13 ( deixando de executar as linhas 17,18,19,20,21 e22 ok ?).
Na linha 13 existe outra "condição booleana" a ser verificada , certo ? Nessa linha já sabemos que a media_linha é maior ou igual a media_escola, certo ?! Então o algoritmo quer mostrar se o aluno(a) é ou não excelente e para isso foi criado uma "condição booleana" que determina que "se a média do aluno(a) for maior que 9,00 (nove)" devemos dizer "Média Excelente".
A condição única determina que a linha 14 só será executada "Se (media_aluno>9)".
Depois o programa , sem nenhuma "condição" executa a linha 16 e escreve "Aluno Aprovado", ok ?
Fizemos um desvio condicional onde verificamos apenas 1 condição para determinar se o aluno está ou não APROVADO. Verificamos se a Média do aluno é maior ou igual a Média da Escola :
Se (media_aluno >= media_escola)
Observem que no exercício das notas podemos melhorar. Podemos colocar o algoritmo para verificar se as notas são válidas. Notas válidas , em um sistema escolar, são notas que os valores são maior ou igual a 0 e menor ou igual a 10.
Se (Nota1 >=0) E (Nota1 <=10) , também podemos fazer a verificação com a Nota2 :
Se (Nota1 >=0) E (Nota1 <=10).
Compare as duas observações: Para definir se o aluno está ou não APROVADO precisamos de apenas 1 condição ( usando uma expressão booleana ). Ok ? Mas , para definirmos se as notas (nota1 e nota2) são ou não válidas , precisamos de 2 condições. Ok ?
- Para a nota ( nota1 e nota2 ) ser válida , ela precisa ser maior ou igual a 0 E menor ou igual a 10.
- Percebam que se 1 das 2 condições for FALSA , a nota não será válida.
Agora que aprendemos a usar o SE para tomar decisões com base em uma única condição, chegou o momento de aumentar o poder do nosso raciocínio lógico.
Imagine que queremos validar duas condições ao mesmo tempo: por exemplo, que uma nota esteja entre 0 e 10, ou que uma pessoa tenha mais de 18 anos e tenha carteira de motorista.
Nesses casos, usamos os operadores lógicos para combinar condições dentro do comando SE. Com isso, conseguimos criar decisões mais completas e realistas nos nossos algoritmos.
O operador "E" exige que todas as condições sejam verdadeiras para o resultado ser verdadeiro. Lembra das notas válidas de um sistema escolar ? Para que elas fossem válidas existem 2 condições : ser maior ou igual a 0 zero E ser menor ou igual a 10. Então , as 2 condições devem ser verdadeiras pois se uma delas NÃO for o resultado será FALSO.
Nota maior ou igual a zero E menor ou igual a dez RESULTADO
--------------------------------------------------------------------------------
4,0 VERDADEIRO VERDADEIRO VERDADEIRO
11,0 VERDADEIRO FALSO FALSO
-5,0 FALSO VERDADEIRO FALSO
7,5 VERDADEIRO VERDADEIRO VERDADEIRO
O operador OU exige que pelo menos uma condição seja verdadeira para o resultado ser verdadeiro.
Vamos dar como exemplo uma entrada no ônibus. Digamos que a lei estabeleça que pessoas com menos de 7 anos e mais de 60 anos possa andar de ônibus de graça.
Idade menor que 7 anos OU maior ou igual a 60 anos RESULTADO
---------------------------------------------------------------------------------
18 FALSO FALSO FALSO
6 VERDADEIRO FALSO VERDADEIRO
61 FALSO VERDADEIRO VERDADEIRO
3 VERDADEIRO FALSO VERDADEIRO
Nesta aula, vamos aprender um novo recurso muito importante na programação: os laços de repetição, também chamados de loops.
Imagine que você precise repetir uma mesma tarefa várias vezes: "Somar 3 números digitados pelo usuário".
Se não tivermos um comando de repetição, teríamos que escrever várias vezes o mesmo bloco de comandos, o que não é prático.
Para resolver isso, usamos os laços de repetição, que fazem o computador executar um bloco de comandos várias vezes automaticamente, conforme as condições que definirmos.
Loop Para Até
Enquanto Faça.
Repita até
O primeiro tipo de loop que vamos estudar é o
Para ... Ate ... Faça,
que é usado quando sabemos exatamente quantas vezes queremos repetir uma tarefa.
Ou variável contadora, é um tipo de variável que usamos para obter uma contagem de um valor conhecido ( 1 , 2 , 3 etc ).
Ou variável acumuladora, é um tipo de variável que usamos para acumular valores desconhecidos.
Esta estrutura repete uma sequência de comandos enquanto uma determinada condição (especificada através de uma expressão lógica) for satisfeita.
enquanto < expressão lógica >
fimenquanto
O comando fimenquanto Indica o fim da
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.
repita
ate < expressão lógica >
Sub-rotinas são blocos de comandos separados dentro de um algoritmo, criados para realizar uma tarefa específica. Elas recebem esse nome porque são partes menores de um algoritmo maior. Existem dois tipos principais de sub-rotinas: procedimentos e funções.
Você pode pensar em uma sub-rotina como uma receita dentro de outra receita. Em vez de repetir os mesmos passos várias vezes, você os coloca uma vez só dentro da sub-rotina e chama quando precisar.
Subprograma é um programa que auxilia o programa principal através da realização de uma determinada subtarefa. Também costuma receber os nomes de sub-rotina, procedimento, função, método ou módulo. Os subprogramas são chamados dentro do corpo do programa principal como se fossem comandos. Após seu término, a execução continua a partir do ponto onde foi chamado. É importante compreender que a chamada de um subprograma simplesmente gera um desvio provisório no fluxo de execução.
Há um caso particular de subprograma que recebe o nome de função. Uma função, além de executar uma determinada tarefa, retorna um valor para quem a chamou, que é o resultado da sua execução. Por este motivo, a chamada de uma função aparece no corpo do programa principal como uma expressão, e não como um comando.
Cada subprograma, além de ter acesso às variáveis do programa que o chamou (são as variáveis globais), pode ter suas próprias variáveis (são as variáveis locais), que existem apenas durante sua chamada.
Ao se chamar um subprograma, também é possível passar-lhe determinadas informações que recebem o nome de parâmetros (são valores que, na linha de chamada, ficam entre os parênteses e que estão separados por vírgulas). A quantidade dos parâmetros, sua seqüência e respectivos tipos não podem mudar: devem estar de acordo com o que foi especificado na sua correspondente declaração.
Para se criar subprogramas, é preciso descrevê-los após a declaração das variáveis e antes do corpo do programa principal. O VisuAlg possibilita declaração e chamada de subprogramas nos moldes da linguagem Pascal, ou seja, procedimentos e funções com passagem de parâmetros por valor ou referência. Isso será explicado a seguir.
Exemplos de Procedimento e Função
Observe que na função precisamos passar os parâmetros e os tipos que eles são e o tipo que a função irá retornar , inteiro, real, caracter etc ( linha 4).
Para desviar o programa para um procedimento basta escrever o nome do procedimento.
Uma função retorna apenas um valor e faz isso através da palavra (comando) retorne.
O valor retornado pela função, pode ser atribuído a uma variável ( linha 11 ) ou pode ser testada com comandos , por exemplo o comando "Se"
1-compr (c : caracter) : Retorna um inteiro contendo o comprimento (quantidade de caracteres) da expressão. Observe que o que está dentro do parênteses é chamado de parâmetro e deve ser do tipo caracter
nome <- "UENF"
escreval(compr(nome))
2-copia (c : caracter ; p, n : inteiro) : Retorna uma string(palavra) contendo uma cópia parcial do parâmetro c; a partir do caracter p, contendo n caracteres. Os caracteres são numerados da esquerda para a direita, começando de 1.
texto<-"Engenharia da UENF"
escreval(copia( texto, 7, 10))
3-maiusc (c : caracter) : Retorna um valor caracter contendo a expressão em maiúsculas.
texto <- "engenharia da uenf"
escreval(maiusc(texto))
4-minusc (c : caracter) : Retorna um valor caracter contendo a expressão em minúsculas
texto <- "UENF"
escreval(minusc(texto))
5-pos (subc, c : caracter) : Retorna um inteiro que indica a posição em que a cadeia subc se encontra em c, ou zero se subc não estiver contida em c.
textooriginal<- "O melhor açaí do Brasil está no ...."
procurado <- "Brasil"
escreval(pos(procurado,textooriginal))
6-int (Int( expressão) - Retorna a parte inteira do valor representado por expressão
algumnumero <- 6.7944
escreva(int(algumnumero)
Esse comando possui um bug em algumas versões do software :
Algoritmo "Caso"
Var
t:caracter
Inicio
leia(t)
t<-maiusc(t)
escolha t
caso "Pix"
escreva("Você fez pix")
caso "Din"
escreva("Você pagou em din")
outrocaso
escreva("forma de pagamento inválido")
fimescolha
Fimalgoritmo
O VisuAlg implementa (com certas variações) o comando case do Pascal. A sintaxe é a seguinte:
escolha < expressao de selação >
caso < valor1 > , < valor2>, < valor3 >
< sequencia de comandos que deseja executar >
caso < valor3 > , < valor4>, < valor5 >
< sequencia de comandos que deseja executar >
outrocaso
fimescolha