Buscar

Logica de Programacao e Algoritmos resumo

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

Métodos de Solução de Problemas: Lógica está associada à coerência e à racionalidade. Não necessariamente à matemática, mas às demais ciências.
Lógica: arte de bem pensar. Ciência das FORMAS do pensamento.
Lógica: Correção do pensamento. Como filosofia, arte ou técnica, nos ensina a usar corretamente as leis do pensamento.
Forma mais complexa do pensamento é o raciocínio. Lógica estuda a correção do raciocínio.
Lógica tem em vista a ordem da razão. Lógica é proveniente da filosofia.
Poderia-se dizer que a lógica é uma estrutura do juízo que permite que este se relacione com a realidade.
A lógica é então o estudo filosófico de um raciocínio VÁLIDO, aplicado a atividades intelectuais, tais como matemática e ciência da computação.
Construindo uma Lógica: Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal.
A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta.
Anacleto é mais velho que Felisberto. Felisberto é mais velho que Marivaldo. Portanto, Anacleto é mais velho que Marivaldo.
Algoritmos: Um dos objetivos da lógica de programação é a CONSTRUÇÃO de ALGORITMOS coerentes e validados.
Um algoritmo pode ser definido como uma sequência finita de passos, descritos em uma ordem lógica, que atingirão um objetivo bem definido.
“Algoritmo é uma sequência de passos que deve ser seguida para a realização de uma tarefa.” Ascencio, 1999.
“Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.” Salvetti, 1999.
“Algoritmos são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas.” Manzano, 1997.
Algoritmo 1: Somar três números. 1. Receber os três números; 2. Somar os três números; 3. Mostrar o resultado obtido.
Método para Construção de Algoritmos:
1 - Compreender COMPLETAMENTE o PROBLEMA a ser resolvido, destacando pontos e objetos importantes.
2 - Definir os dados de entrada. Dados que serão FORNECIDOS para o cenário em questão.
3 - Definir o processamento, os cálculos, restrições, transformações dos dados de ENTRADA em SAÍDA.
4 - Definir os dados de saída, gerados após o processamento.
5 - Construir o algoritmo utilizando um dos tipos de dados.
6 - Testar o algoritmo realizando simulações.
Descrição Narrativa: Análise do enunciado do problema e escrita da solução através de passos a serem seguidos em linguagem natural.
Vantagens: Língua Natural, já bem conhecida.
Desvantagens: dúbia, várias interpretações, dificuldade de transcrição para programa de computador.
Fluxograma: Análise do enunciado do problema e escrita através de símbolos gráficos predefinidos.
Vantagens: entendimento de elementos gráficos é mais simples que o entendimento de textos.
Desvantagens: É necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta muitos detalhes. Dificulta transcrição para um programa.
Pseudocódigo: Ou Portugol consistem em analisar o enunciado do problema e escrevê-lo através de regras predefinidas, os passos a serem seguidos para sua resolução.
Vantagem: a passagem de um algoritmo para qualquer linguagem de programação é quase imediata. Basta conhecer a sintaxe da linguagem.
Desvantagem: necessário aprender regras do pseudocódgio.
Exercitando Narrativa:
Passo 1 – Receber dois números que serão divididos
Passo 2 – Se o segundo número for igual a zero, não poderá ser feita a divisão, pois não existe divisão por zero.
Caso contrário, dividir os números e mostrar o resultado da divisão.
Exercitando Portugol:
ALGORITMO
DECLARE N1, N2, D NUMÉRICO
ESCREVA "Digite dois números"
LEIA N1, N2
SE N2 = 0
ENTÃO ESCREVA "Impossível dividir"
SENÃO INÍCIO
	D <- N1/N2
	ESCREVA "Divisão = ", D
	FIM
FIM_ALGORITMO
APOL 1
(1) - A lógica muitas vezes é relacionada à racionalidade e à coerência e frequentemente a associamos apenas à matemática. Porém, sua aplicabilidade possui mais relação com outras áreas que possamos imaginar. É correto afirmar que:
A) A lógica, como filosofia, procura estabelecer sempre do mesmo jeito.
B) (x) Uma das formas de usarmos a lógica é no procedimento de correção do nosso modo de pensar para a construção de algoritmos de programação.
C) A lógica não pode ser considerada como arte do pensar pois é exata demais.
D) A forma mais complexa do pensamento não é o raciocínio, portanto a lógica não corrige o raciocínio.
(2) - Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda a correção do raciocínio. É correto afirmar que:
A) (x) A lógica tem em vista a ordem da razão, portanto, isso dá a entender que a nossa razão pode funcionar desordenadamente.
B) A lógica tem em vista a utilização da razão que já funciona ordenadamente, portanto a lógica estuda e ensina apenas a utilização natural da ordem de nossos pensamentos.
C) A lógica não pode ser considerada como arte do pensar pois é exata demais.
D) A forma mais complexa do pensamento não é o raciocínio, portanto a lógica não corrige o raciocínio.
(3) - Utilizando as seguintes premissas e a conclusão:
- Todo mamífero é um animal.
- Todo cavalo é um mamífero.
- Logo todo cavalo é um animal.
A única sentença incorreta é:
A) É considerado um silogismo de acordo com a lógica proposicional.
B) Tais argumentos compostos por duas premissas e uma conclusão estabelecem uma relação válida ou não.
C) Esta situação é um dos objetivos da lógica, que estuda técnicas para formalização, dedução e análise para verificação da validade de argumentos.
D) (x) É considerado um silogismo de acordo com a lógica de predicados.
(4) - Lógica de programação pode ser definida como o uso correto das leis do pensamento, da ordem da razão e de processos de raciocínio e simbolização formais na programação de computadores. É incorreto afirmar, ao se falar de lógica e lógica de programação, que:
A) Um dos principais objetivos é a racionalidade e o desenvolvimento de técnicas que cooperam na produção de soluções logicamente válidas e coerentes.
B) O mesmo raciocínio pode ser expresso em qualquer idioma existente, mas continuaria representando o mesmo raciocínio através de outra convenção.
C) Uma vez a lógica estruturada, poderíamos representá-la em qualquer linguagem de programação.
D) (x) O raciocínio é algo concreto e tangível.
(5) - Um algoritmo fixa um padrão de comportamento a ser seguido ou uma norma de execução a ser trilhada, com vistas a alcançar, como resultado final, a solução de um problema, garantindo que sempre que executado, sob as mesmas condições, produza o mesmo resultado. É incorreta a definição de algoritmo abaixo:
A) Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido. Forbellone, 1999.
B) Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância. Salvetti, 1999.
C) (x) Algoritmo é uma sequência de características padronizadas para realização de uma tarefa. Ascencio, 1999.
D) Algoritmos são regras formais para obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas. Manzano, 1997.
(6) - Observe os passos abaixo e diga qual a ordem ideal para o funcionamento de um algoritmo que tenha por finalidade sacar dinheiro num banco 24 horas:
A) Ir até o banco 24 horas / Digitar a senha / Solicitar a quantia desejada / Colocar o cartão / Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário, mostrar mensagem de impossibilidade de saque / Retirar o cartão / Sair do banco 24 horas.
B) Ir até o banco 24 horas / Colocar o cartão / Digitar a senha / Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário, mostrar mensagem de impossibilidade de saque / Solicitar a quantia desejada / Retirar o cartão / Sair do banco 24 horas.
C) Ir até o banco 24 horas
/ Sair do banco 24 horas / Colocar o cartão / Digitar a senha / Solicitar a quantia desejada / Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário, mostrar mensagem de impossibilidade de saque / Retirar o cartão.
D) (x) Ir até o banco 24 horas / Colocar o cartão / Digitar a senha / Solicitar a quantia desejada / Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário, mostrar mensagem de impossibilidade de saque / Retirar o cartão / Sair do banco 24 horas.
(7) - Um algoritmo pode ser escrito ou desenhado de várias formas. Entre estas formas, com suas definições, estão as seguintes:
A) (x) Descrição Narrativa: escrita em linguagem natural. / Fluxograma: desenho através de símbolos gráficos predefinidos de passos a serem seguidos para resolução e / Pseudocódigo ou Portugol: escrita em linguagem natural porém com regras predefinidas e passos a serem seguidos para sua resolução.
B) Descrição Narrativa: escrita em língua portuguesa. / Fluxograma: desenho através de símbolos gráficos predefinidos de passos a serem seguidos para resolução e / Pseudocódigo ou Portugol: escrita em linguagem natural com regras predefinidas e passos a serem seguidos para sua resolução.
C) Descrição Narrativa: escrita em língua portuguesa ou inglesa. / Fluxograma: desenho através de símbolos gráficos predefinidos de passos a serem seguidos para resolução e / Pseudocódigo ou Portugol: escrita em linguagem natural com regras predefinidas e passos a serem seguidos para sua resolução.
D) Descrição Narrativa: escrita em língua natural. / Fluxograma: desenho através de símbolos gráficos predefinidos de passos a serem seguidos para resolução e / Pseudocódigo ou Portugol: escrita em linguagem artificial com regras predefinidas e passos a serem seguidos para sua resolução.
(8) - Faça um algoritmo que recebe dois números quaisquer, faça a multiplicação de ambos e depois mostre o resultado. Qual o passo, nas opções apresentadas a seguir, que não faz parte da resolução do algoritmo?
A) Declare n1,n2, m numérico; Escreva “Digite os dois números”
B) Leia n1, n2
C) (x) Se n1 = n2 escreva “Impossível realizar a operação”.
D) m=n1*n2
(9) - Descrição narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidos para sua resolução. Existem vantagens e desvantagens, com as relacionadas nas opções a seguir, exceto:
A) Vantagem: não é necessário aprender nenhum conceito novo.
B) Vantagem: utiliza língua natural, a qual é bem conhecida.
C) Desvantagem: Dificuldade para transcrição do algoritmo para programa.
D) (x) Desvantagem: só é possível escrevê-la em Língua Portuguesa.
(10) - Na escrita de um algoritmo que calcule a média de três valores quaisquer, a melhor resolução escrita em descrição narrativa seria:
A) 1-receber os três valores. 2 – calcular a média aritmética. 3-se a média for maior que 7 dizer que o aluno está aprovado. 4-mostrar a média.
B) 1-receber os três valores. 2 – calcular a soma aritmética. 3-mostrar a soma aritmética. 4-mostrar a média.
C) (x) 1-receber os três valores. 2-calcular a média aritmética. 3-mostrar a média aritmética.
D) 1-receber os três valores. 2 – somar os três valores. 3-mostrar a média aritmética.
Inteiro, Reais, Caracteres, Lógicos
Interiro: toda e qualquer informação numérica que pertença ao conjunto dos números inteiros relativos.
Real: toda e qualquer informação numérica que pertença ao conjunto dos números reais.
Caractere: toda e qualquer informação composta de um conjunto de caracteres alfanuméricos.
numéricos: (0...9)
alfabéticos: (A...Z, a...z)
especiais: (#, ?, @)
Lógico: toda e qualquer informação que pode assumir apenas duas situações. Verdadeiro e falso.
Algoritmos precisam ser alimentados com dados do meio externo para efetuarem operações e cálculos.
Depois devem enviar para o meio externo os resultados. A isso chamamos de comandos de entrada e saida.
APOL 2
(1) - Aproximando-nos da maneira pela qual o computador manipula as informações, os tipos primitivos básicos utilizados para construção de programas serão:
A) Sequência, condicional e repetição.
B) Sequência, seleção e repetição.
C) (x) Inteiro, caracter, real e lógico.
D) Inteiro, lógico, real e numérico.
(2) - Para manipulação de dados dentro de nossos algoritmos utilizamos:
A) (x) Variáveis, que são alteradas constantemente no decorrer do tempo de execução dos algoritmos, e constantes, que não sofrem variação no decorrer do tempo de execução do algoritmo.
B) Variáveis que são alteradas constantemente no decorrer do tempo, bem como constantes que também sofrem variações.
C) Variáveis, constantes, estruturas de controle e declaração de variáveis.
D) Variáveis inteiras, numéricas e caracter que não alteram durante todo o tempo de execução.
(3) - Cada tipo de dado deve ser declarado no início do algoritmo. O exemplo abaixo está correto segundo as regras de definição de variáveis:
A) Inteiro: x y; Caracter: nome; Real: peso, dolar; Lógico: resposta.
B) Inteiro: x10; Caracter: nome, datas; Real: peso, moeda dolar; Lógico: resposta1.
C) Inteiro: x1; Caracter: nome, data%; Real: peso, dolar; Lógico: resposta1.
D) (x) Inteiro: x; Caracter: nome, data; Real: peso, dolar; Lógico: resposta.
(4) - Para o algoritmo abaixo, identifique a ordem das principais etapas da construção do algoritmo:
A) 1-Entrada, 2-Saída, 3-Processamento
B) (x) 1-Entrada, 2-Processamento, 3-Saída
C) 1-Declaração de variáveis, 2-Entrada e Processamento, 3-Saída
D) 1-Declaração de variáveis e Entrada, 2-Processamento, 3-Saída
(5) - Uma estrutura de controle do tipo condicional pode ter as seguintes composições:
A) Condicional simples e encadeada.
B) Condicional composta e encadeada.
C) Condicional simples e condicional composta.
D) (x) Condicional simples, condicional composta e condicional encadeada.
(6) - Para o algoritmo abaixo, identifique qual a parte de código preencheria a lacuna em aberto:
A) se (n1=n2) e (n1>n3) e (n2>n3) entao
	escreva (" n1>n2>n3 ", n1,">", n2,">", n3)
fimse
se (n1>n3) e (n1>n2) e (n3>n2) entao
	escreva (" n1>n3>n2 ", n1,">", n3,">", n2)
fimse
B) (X) se (n1>n2) e (n1>n3) e (n2>n3) entao
	escreva (" n1>n2>n3 ", n1,">", n2,">", n3)
fimse
se (n1>n3) e (n1>n2) e (n3>n2) entao
	escreva (" n1>n3>n2 ", n1,">", n3,">", n2)
fimse
C) se (n1>n2) e (n1=n3) e (n2<>n3) entao
	escreva (" n1>n2>n3 ", n1,">", n2,">", n3)
fimse
se (n1>n3) e (n1>n2) e (n3>n2) entao
	escreva (" n1>n3>n2 ", n1,">", n3,">", n2)
fimse
D) se (n1>n2) e (n1<n3) e (n2>n3) entao
	escreva (" n1>n2>n3 ", n1,">", n2,">", n3)
fimse
se (n1>n3) e (n1<n2) e (n3>n2) entao
	escreva (" n1>n3>n2 ", n1,">", n3,">", n2)
fimse
(7) - Para o algoritmo abaixo, identifique nas alternativas a parte de código que, inserida na linha faltante, efetuaria o cálculo correto:
A) result<-base***expo
B) result<-^base*expo
C) (X) result<-base^expo
D) result<-base*(expo)^2
(8) - Para o algoritmo abaixo, identifique qual a parte de código representaria melhor a entrada dos dados:
A) escreval("Digite um valor o raio : ")
leia(raio)
escreval(“Digite o valor de Pi:”)
leia(Pi)
B) (X) escreval("Digite um valor o raio : ")
leia(raio)
C) escreval("Digite um valor o raio : ")
leia(raio)
escreval(“Digite o valor de Pi:”)
D) leia(raio)
(9) - Para o algoritmo abaixo, identifique o melhor enunciado para o problema:
A) Faça um programa que receba um número positivo e maior que zero, calcule mostre:
O número recebido ao quadrado;
O número recebido ao cubo;
O dobro do número.
B) (X) Faça um programa que receba um número qualquer, calcule mostre:
O número recebido ao quadrado;
O número recebido ao cubo;
O dobro do número.
C) Faça um programa que receba um número positivo e maior que zero, calcule mostre:
O número recebido ao quadrado;
O dobro do número.
O número recebido ao cubo;
D) Faça um programa que receba um número qualquer, calcule mostre:
O número recebido ao cubo;
O dobro do número.
O número recebido ao quadrado;
(10) - Para o algoritmo abaixo, identifique o melhor enunciado para o problema:
A) Faça um programa que receba a data de nascimento de uma pessoa e a data atual, calcule e mostre:
Quantos anos a pessoa terá em 2020.
A idade da pessoa;
B) Faça um programa que receba o ano de nascimento de uma pessoa e idade da pessoa, calcule e mostre:
O ano atual;
Quantos anos a pessoa terá em 2021.
C) (X) Faça um programa que receba o ano de nascimento de uma pessoa e o ano atual, calcule mostre:
A idade da pessoa;
Quantos anos a pessoa terá em 2020.
D) Faça um programa que receba o ano de nascimento de uma pessoa e o ano atual, confira se o ano atual é maior que o ano de nascimento, calcule e mostre:
A idade da pessoa;
Quantos anos a pessoa terá em 2020.
Estruturas: Um algoritmo funciona por meio de estruturas básicas de controle do fluxo de execução. São elas: sequência, seleção (condicional) e repetição (iteração).
Estrutura Sequencial: Conjunto de ações primitivas executadas em sequência linear de cima para baixo e da esquerda para direita.
Exemplo: Faça um algoritmo que calcule a média aritmética entre quatro notas bimestrais quaisquer fornecidas por um aluno.
Dados de Entrada: quatro notas bimestrais (N1, N2, N3 e N4)
Dados de Saída: Média aritmética anual (MA)
Transformação/Cálculo: MA=(N1+N2+N3+N4)/4
Estrutura de Seleção: Uma estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionais, são ou não satisfeitas.
Seleção Simples: Quando precisamos testar uma condição antes de executar uma ação, usamos uma seleção simples.
Se <condição)
Então
	Comandos
Fimse
Exemplo: Vamos ampliar o algoritmo que calcula a média aritmética de 4 notas bimestrais. Vamos avaliar se o aluno aprovou ou não. Consideraremos a média 7 para ser aprovado.
Seleção Composta: Situações alternativas dependem que dependam de uma mesma condição requerem uma seleção composta.
Se <condição>
Então
	Comandos
Senão
	Comandos
Fimse
Seleção Encadeada: Agrupamento de várias seleções.
Se <condição 1>
Então
	Se <condição 2>
	Então
		Comandos
	Fimse
	Senão
	Se <condição 3>
	Então
		Comandos
	Fimse
Fimse
A estrutura de repetição é utilizada quando se sabe o número de vezes em que um trecho do algoritmo deve ser repetido.
Número definido de repetições
para <variável> de
<valor-inicial> ate
<valor-limite> [passo
<incremento>] faça
<sequência-de-
comandos>fimpara
Para i <- valor inicial até valor final faça
	comando 1
	comando 2
	comando 3
fimpara
APOL 3
(1) - Para o algoritmo abaixo, identifique qual a parte de código preencheria a parte faltante (substitui o quadro):
algoritmo "prog1"
var
x, idade,crianca,preadole,adolescente,adulto: inteiro
inicio
// Seção de Comandos
para x de 1 ate 10 faca
 escreva("Digite uma idade: ")
 leia(idade)
 se idade<=11 entao
 crianca<-crianca+1
 fimse
+----------------------------------------+
| |
| |
| |
| |
| |
+----------------------------------------+
 se (idade>14) e (idade<=17) entao
 adolescente<-adolescente+1
 fimse
 se idade >= 18 entao
 adulto<-adulto+1
 fimse
fimpara
 escreval("*** Totais por faixa-etária ***")
 escreval("Número de criancas: ",crianca)
 escreval("Número de pre-adolescentes: ",preadole)
 escreval("Número de adolescentes: ",adolescente)
 escreval("Número de adultos: ",adulto)
fimalgoritmo
A) se (idade>12) e (idade<=14) entao
	preadole<-preadole+1
fimse
B) se (idade>=11) e (idade<=14) entao
	preadole<-preadole+1
fimse
C) (x) se (idade>11) e (idade<=14) entao
	preadole<-preadole+1
fimse
D) se (idade>11) e (idade<14) entao
	preadole<-preadole+1
fimse
(2) - Para o algoritmo abaixo, qual a melhor substituição para que o programa execute n vezes a repetição:
algoritmo "prog2"
var
x, idade,crianca,preadole,adolescente,adulto: inteiro
inicio
// Seção de Comandos
para x de 1 ate 10 faca
 escreva("Digite uma idade: ")
 leia(idade)
 se idade<=11 entao
 crianca<-crianca+1
 fimse
se (idade>11) e (idade<=14) entao
 preadole<-preadole+1
 fimse
se (idade>14) e (idade<=17) entao
 adolescente<-adolescente+1
 fimse
 se idade >= 18 entao
 adulto<-adulto+1
 fimse
fimpara
escreval("*** Totais por faixa-etária ***")
escreval("Número de criancas: ",crianca)
escreval("Número de pre-adolescentes: ",preadole)
escreval("Número de adolescentes: ",adolescente)
escreval("Número de adultos: ",adulto)
fimalgoritmo
A) var
x, idade,crianca,preadole,adolescente,adulto: inteiro
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
leia(qt)
para x de 1 ate qt faca
B) var
x, idade,crianca,preadole,adolescente,adulto,qt: inteiro
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
leia(“qt”)
para x de 1 ate qt faca
C) var
x, idade,crianca,preadole,adolescente,adulto,qt: inteiro
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
para x de 1 ate qt faca
D) (x) var
x, idade,crianca,preadole,adolescente,adulto,qt: inteiro
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
leia(qt)
para x de 1 ate qt faca
(3) - Para o algoritmo abaixo, qual a melhor substituição para que o programa utilize o comando enquanto-faca no lugar do para-faca?
algoritmo "prog3"
var
x, idade,crianca,preadole,adolescente,adulto,qt: inteiro
inicio
// Seção de Comandos
Escreval(“Digite a quantidade de entradas:”)
leia(qt)
para x de 1 ate qt faca
 escreva("Digite uma idade: ")
 leia(idade)
 se idade<=11 entao
 crianca<-crianca+1
 fimse
se (idade>11) e (idade<=14) entao
 preadole<-preadole+1
 fimse
se (idade>14) e (idade<=17) entao
 adolescente<-adolescente+1
 fimse
 se idade >= 18 entao
 adulto<-adulto+1
 fimse
fimpara
escreval("*** Totais por faixa-etária ***")
escreval("Número de criancas: ",crianca)
escreval("Número de pre-adolescentes: ",preadole)
escreval("Número de adolescentes: ",adolescente)
escreval("Número de adultos: ",adulto)
fimalgoritmo
A) (x) enquanto x < qt faca
.
.
.
x<-x+1
fimenquanto
B) enquanto x < qt faca
.
.
.
qt<-qt+1
fimenquanto
C) enquanto x < qt faca
.
.
.
x<-x+1
fimepara
D) enquanto x = qt faca
.
.
.
x<-x+1
fimenquanto
(4) - Para o algoritmo abaixo, como colocar a exibição das totalizações (substituir o quadro)?
algoritmo "prog4"
var
x, idade,qt,fem_maior, fem_menor,masc_maior, masc_menor: inteiro
sexo:caracter
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
leia(qt)
enquanto x < qt faca
 escreva("Digite uma idade: ")
 leia(idade)
 escreva("Digite o sexo (f/m): ")
 leia(sexo)
 se (idade<18) e (sexo="f") entao
 fem_menor<-fem_menor+1
 fimse
 se (idade<18) e (sexo="m") entao
 masc_menor<-masc_menor+1
 fimse
 se (idade>=18) e (sexo="f") entao
 fem_maior<-fem_maior+1
 fimse
 se (idade>=18) e (sexo="m") entao
 masc_maior<-masc_maior+1
 fimse
x<-x+1
fimenquanto
+----------------------------------------+
| |
| |
| |
| |
| |
+----------------------------------------+
fimalgoritmo
A) escreval("*** Totais por faixa-etária e sexo ***")
escreval("Número de meninas: ",femmenor)
escreval("Número de mulheres: ",femmaior)
escreval("Número
de meninos: ",mascmenor)
escreval("Número de homens: ",mascmaior)
B) (x) escreval("*** Totais por faixa-etária e sexo ***")
escreval("Número de meninas: ",fem_menor)
escreval("Número de mulheres: ",fem_maior)
escreval("Número de meninos: ",masc_menor)
escreval("Número de homens: ",masc_maior)
C) escreval("*** Totais por faixa-etária e sexo ***")
escreval("Número de meninas: ",fem_menor)
escreval("Número de mulheres: ",fem_maior)
escreval("Número de mulheres: ",fem_menor)
escreval("Número de meninos: ",masc_menor)
D) escreval("*** Totais por faixa-etária e sexo ***")
escreval("Totais: ",fem_menor,fem_maior,masc_menor,masc_maior)0
(5) - Para o algoritmo abaixo, como calcular os percentuais de cada idade-sexo (substituir o quadro)?
algoritmo "prog4"
var
x, idade,qt,fem_maior, fem_menor,masc_maior, masc_menor: inteiro
sexo:caracter
inicio
// Seção de Comandos
escreval("Digite a quantidade de entradas:")
leia(qt)
enquanto x < qt faca
 escreva("Digite uma idade: ")
 leia(idade)
 escreva("Digite o sexo (f/m): ")
 leia(sexo)
 se (idade<18) e (sexo="f") entao
 fem_menor<-fem_menor+1
 fimse
 se (idade<18) e (sexo="m") entao
 masc_menor<-masc_menor+1
 fimse
 se (idade>=18) e (sexo="f") entao
 fem_maior<-fem_maior+1
 fimse
 se (idade>=18) e (sexo="m") entao
 masc_maior<-masc_maior+1
 fimse
x<-x+1
fimenquanto
escreval("*** Totais por faixa-etária e sexo ***")
escreval("Número de meninas: ",fem_menor)
escreval("Número de mulheres: ",fem_maior)
escreval("Número de meninos: ",masc_menor)
escreval("Número de homens: ",masc_maior)
+----------------------------------------+
| |
| |
| |
| |
| |
+----------------------------------------+
fimalgoritmo
A) escreval("% de meninas: ",fem_menor*10/qt," %")
escreval("% de mulheres: ",fem_maior*10/qt," %")
escreval("% de meninos: ",masc_menor*10/qt," %")
escreval("% de homens: ",masc_maior*10/qt," %")
B) escreval("% de meninas: ",fem_menor/qt," %")
escreval("% de mulheres: ",fem_maior/qt," %")
escreval("% de meninos: ",masc_menor/qt," %")
escreval("% de homens: ",masc_maior/qt," %")
C) escreval("% de meninas: ",fem_menor*100/x-qt," %")
escreval("% de mulheres: ",fem_maior*100/ x-qt," %")
escreval("% de meninos: ",masc_menor*100/ x-qt," %")
escreval("% de homens: ",masc_maior*100/ x-qt," %")
D) (x) escreval("% de meninas: ",fem_menor*100/qt," %")
escreval("% de mulheres: ",fem_maior*100/qt," %")
escreval("% de meninos: ",masc_menor*100/qt," %")
escreval("% de homens: ",masc_maior*100/qt," %")
(6) - Para um vetor v1 de tamanho 10, qual seria a lógica mais adequada para fazer a entrada, via teclado, de cada elemento?
A) para i de 1 ate 10 faca
	escreval("Digite um numero qualquer:")
	leia(v1[1])
fimpara
B) (x) para i de 1 ate 10 faca
	escreval("Digite um numero qualquer:")
	leia(v1[i])
fimpara
C) para i de 1 ate 10 faca
	escreval("Digite um numero qualquer:")
	leia(v1[10])
fimpara
D) para i de 1 ate 10 faca
	escreval("Digite um numero qualquer:")
	leia(v1)
fimpara
(7) - Para um vetor v1 de tamanho 50, qual seria a lógica mais adequada para mostrar o valor dos elementos na tela?
A) para i de 1 ate 50 faca
	leia("v",i,": ",v1[i])
fimpara
B) para i de 1 ate 50 faca
	leia (v1)
fimpara
C) para i de 1 ate n faca
	escreval("v",i,": ",v1)
fimpara
D) (x) para i de 1 ate 50 faca
	escreval(v1[i])
fimpara
(8) - Para um vetor v1 de tamanho 50, qual seria a melhor lógica para identificação do menor e do maior elemento?
A) para i de 1 ate 10 faca
	se (v1[i]>maior) entao
		maior<-v1[i]
	fimse
	se (v1[i]<menor) entao
		menor<-v1[i]
	fimse
fimpara
B) maior<-v1[1]
menor<-v1[1]
para i de 1 ate 10 faca
	se (v1[i]>maior) entao
		maior<-v1[i]
	fimse
fimpara
C) (x) maior<-v1[1]
menor<-v1[1]
para i de 1 ate 50 faca
	se (v1[i]>maior) entao
		maior<-v1[i]
	fimse
	se (v1[i]<menor) entao
		menor<-v1[i]
	fimse
fimpara
D) maior<-v1[1]
menor<-v1[1]
se (v1[i]>maior) entao
	maior<-v1[i]
fimse
se (v1[i]<menor) entao
	menor<-v1[i]
fimse
(9) - Para a parte de programa abaixo, com m=3 e n=3, qual seria a saída?
leia(m,n)
para i de 1 ate m faca
	para j de 1 ate n faca
		se(j=1) entao
			matriz[i,j]<-1
		senao
			matriz[i,j]<-0
		fimse
	fimpara
fimpara
A) 1 0 0
1 1 0
0 1 1
B) (x) 1 0 0
1 0 0
1 0 0
C) 1 1 1
1 0 0
1 0 0
D) 1 1 1
0 0 0
0 0 0
(10) - Para a parte de programa abaixo, com m=3 e n=3, qual seria a saída?
leia(m,n)
para i de 1 ate m faca
	para j de 1 ate n faca
		se(i=j) entao
			matriz[i,j]<-1
		senao
			matriz[i,j]<-0
		fimse
	fimpara
fimpara
A) (x) 1 0 0
0 1 0
0 0 1
B) 1 0 0
1 0 0
1 0 0
C) 1 1 1
1 0 0
1 0 0
D) 1 1 1
0 0 0
0 0 0
Vetor é uma variável composta homogênea e unidimensional.
Uma vez que o nome é único para n variáveis, o que distingue cada item é o índice.
Vetores – unidimensionais;
Matrizes – várias linhas e várias colunas.
APOL 4
(1) - Para o algoritmo abaixo, identifique qual a parte de código preencheria a lacuna em aberto. O algoritmo faz a distribuição dos números em outros dois vetores, um vetor só com números positivos e outro só com números negativos:
algoritmo "vetores"
var
 i,j,k,n : inteiro
 v: vetor [1..50] de real
 vp: vetor [1..50] de real
 vn: vetor [1..50] de real
 aux: real
inicio
//seção de comandos
 escreval("Digite o número de elementos do vetor:")
 leia(n)
 para i de 1 ate n faca
 escreval("Digite um numero qualquer:")
 leia(v[i])
 fimpara
 limpatela
+------------------------------+
+------------------------------+
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 fimpara
fimalgoritmo
A) para i de 1 ate n faca
 se (v[i]>1) entao
 k<-k+1
 vp[k]<-v[i]
 senao
 j<-j+1
 vn[j]<-v[i]
 fimse
 fimpara
B) (x) k<-0
 j<-0
 para i de 1 ate n faca
 se (v[i]>0) entao
 k<-k+1
 vp[k]<-v[i]
 senao
 j<-j+1
 vn[j]<-v[i]
 fimse
 fimpara
C) para i de 1 ate n faca
 se (v[i]>0) entao
 k<-k+1
 vp[i]<-v[i]
 senao
 j<-j+1
 vn[i]<-v[i]
 fimse 
fimpara
D) k<-0
j<-0
para i de 1 ate n faca
 se (v[i]>0) entao
 vp[k]<-v[i]
 senao
 vn[j]<-v[i]
 fimse
 fimpara
(2) - Para o algoritmo abaixo, qual a melhor declaração de variáveis?
algoritmo "vetores"
inicio
//seção de comandos
 escreval("Digite o número de elementos do vetor:")
 leia(n)
 para i de 1 ate n faca
 escreval("Digite um numero qualquer:")
 leia(v[i])
 fimpara
 escreval("Digite um valor qualquer para inserir no vetor:")
 leia(valor)
 escreval("Digite a posição do vetor")
 leia(posicao)
 para i de n ate 2 passo -1 faca
 se (i>=posicao) entao
 v[i+1]<-v[i]
 fimse
 se (posicao=i) entao
 v[i]<-valor
 fimse
 fimpara
 para i de 1 ate n+1 faca
 escreval(v[i])
 fimpara
fimalgoritmo
A) (x) var
 i,n,posicao : inteiro
 valor:real
 v: vetor [1..50] de real
B) var
 i,posicao : inteiro
 valor:real
 v: vetor [1..50] de real
C) var
 i,n,posicao : inteiro
 v: vetor [1..50] de real
D) var
 i,n: inteiro
 valor:real
 v: vetor [1..50] de real
(3) - algoritmo "vetores"
var
 i,n,posicao : inteiro
 valor:real
 v: vetor [1..50] de real
 aux: real
 inicio
//seção de comandos
 escreval("Digite o número de elementos do vetor:")
 leia(n)
 para i de 1 ate n faca
 escreval("Digite um numero qualquer:")
 leia(v[i])
 fimpara
 escreval("Digite um valor qualquer para inserir no vetor:")
 leia(valor)
escreval("Digite a posição do vetor")
 leia(posicao)
 para i de n ate 2 passo -1 faca
 se (i>=posicao) entao
 v[i+1]<-v[i]
 fimse
 se (posicao=i) entao
 v[i]<-valor
 fimse
 fimpara
 para i de 1 ate n+1 faca
 escreval(v[i])
 fimpara
 fimalgoritmo
A) 5
1
2
3
4
5
100
3
1
2
100
3
3
4
5
B) (x) 5
1
2
3
4
5
100
3
1
2
100
3
4
5
C) 5
1
2
3
4
5
100
3
1
2
3
100
4
5
D) 5
1
2
3
4
5
100
3
1
2
3
4
5
100
100
100
(4) - Para o algoritmo abaixo, explique a necessidade de se utilizar as variáveis k e j:
algoritmo "vetores"
var
 i,j,k,n : inteiro
 v: vetor [1..50] de real
 vp: vetor [1..50] de real
 vn: vetor [1..50] de real
 aux: real
inicio
//seção de comandos
 escreval("Digite o número de elementos do vetor:")
 leia(n)
 para i de 1 ate n faca
 escreval("Digite um numero qualquer:")
 leia(v[i])
 fimpara
 limpatela
 k<-0
 j<-0
 para i de 1 ate n faca
 se (v[i]>0) entao
 k<-k+1
 vp[k]<-v[i]
 senao
 j<-j+1
 vn[j]<-v[i]
 fimse
 fimpara
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 fimpara
Fimalgoritmo
A) (x) As variáveis k e j são utilizadas para que cada vetor inicie novamente em 1 e tenha as posições necessárias preenchidas para os vetores de positivos e negativos.
B) As variáveis k e j são utilizadas para acumular o total de posições positivas e negativas.
C) As variáveis k e j são utilizadas para o somatório de números positivos e negativos.
D) As variáveis k e j são utilizadas como contéudos dos vetores positivos e negativos.
(5) - Para o algoritmo abaixo, qual melhor código a ser inserido antes do final do algoritmo para SOMAR os números positivos e os números negativos e apresentar as respectivas somas?
algoritmo "vetores"
var
 i,j,k,n : inteiro
 v: vetor [1..50] de real
 vp: vetor [1..50] de real
 vn: vetor [1..50] de real
 aux: real
inicio
//seção de comandos
 escreval("Digite o número de elementos do vetor:")
 leia(n)
 para i de 1 ate n faca
 escreval("Digite um numero qualquer:")
 leia(v[i])
 fimpara
 limpatela
 k<-0
 j<-0
 para i de 1 ate n faca
 se (v[i]>0) entao
 k<-k+1
 vp[k]<-v[i]
 senao
 j<-j+1
 vn[j]<-v[i]
 fimse
 fimpara
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 fimpara
Fimalgoritmo
A) positivos<-0
 negativos<-0
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 positivos<-positivos+1
 fimpara
escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 negativos<-negativos+1
 fimpara
 escreval(“Total de Positivos:”,positivos)
 escreval(“Total de Negativos:,negativos)
B) (x) positivos<-0
 negativos<-0
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 positivos<-positivos+vp[i]
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 negativos<-negativos+vn[i]
 fimpara
 escreval(“Soma Positivos:”,positivos)
 escreval(“Soma Negativos:,negativos)
C) positivos<-0
 negativos<-0
 escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[i])
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[i])
 fimpara
 escreval(“Total de Positivos:”,positivos)
 escreval(“Total de Negativos:,negativos)
D) escreval("Positivos:")
 para i de 1 ate j faca
 escreval(vp[j])
 positivos<-positivos+vp[i]
 fimpara
 escreval("Negativos:")
 para i de 1 ate k faca
 escreval(vn[k])
 negativos<-negativos+vn[i]
 fimpara
 escreval(“Total de Positivos:”,positivos)
 escreval(“Total de Negativos:,negativos)
(6) - Para o algoritmo abaixo, qual é o código mais adequado a incluir para calcular a quantidade de números ímpares?
algoritmo "matriz_par"
var
 m:vetor[1..3,1..3] de inteiro
 resto, qtpar,i,j:inteiro
inicio
qtpar <-0
escreval("***** Entrada de Dados *****")
escreval("")
para i de 1 ate 3 faca
 para j de 1 ate 3 faca
 escreva("Digite um valor para linha:",i," coluna:",j,":")
 leia(m[i,j])
 resto<-m[i,j] mod 2
 se(resto=0) entao
 qtpar<-qtpar+1
 fimse
 fimpara
fimpara
limpatela
escreval("***** Resultados da matriz *****")
para i de 1 ate 3 faca
 para j de 1 ate 3 faca
 resto<-m[i,j] mod 2
 se(resto=0) entao
 escreval("Linha:",i," Coluna:",j," Numero=",m[i,j])
 fimse
 fimpara
fimpara
escreval("Quantidade de numeros pares: ", qtpar)
A) (x) resto<-m[i,j] mod 2
se(resto<>0) entao
 qtimpar<-qtimpar+1
fimse
B) resto<-m[i,j] mod 2
se(resto<>0) entao
 qtimpar<-qtimpar+m[i,j]
fimse
C) resto<-m[i,j] mod 2
se(resto=~0) entao
 qtimpar<-qtimpar+1
fimse
D) resto<-m[i,j] mod 2
se(resto=0) entao
 qtimpar<-qtimpar+1
fimse
(7) - Para o algoritmo abaixo, qual deveria ser o resultado exibido para uma matriz 3X3?
algoritmo "matriz"
var
 matriz:vetor[1..10,1..10] de inteiro
 i,j,m,n:inteiro
inicio
escreval("***** Entrada de Dados *****")
escreval("")
escreva("Digite o numero de linhas e o numero de colunas para matriz:")
leia(m,n)
para i de 1 ate m faca
 para j de 1 ate n faca
 escreva("Digite um valor para linha:",i," coluna:",j,":")
 matriz[i,j]<-i+1
 fimpara
fimpara
limpatela
escreval("***** Resultados da matriz *****")
para i de 1 ate m faca
 para j de 1 ate n faca
 escreva(matriz[i,j])
 fimpara
 escreval("")
fimpara
fimalgoritmo
A) 1 1 1
2 2 2
3 3 3
B) (x) 2 2 2
3 3 3
4 4 4
C) 2 2 2
2 2 2
3 3 3 
D) 1 1 1
3 3 3
5 5 5 
(8) - Para o algoritmo abaixo, qual deveria ser a saída para uma matriz 2X2?
algoritmo "matriz"
var
 matriz:vetor[1..10,1..10] de inteiro
 i,j,m,n:inteiro
inicio
escreval("***** Entrada de Dados *****")
escreval("")
escreva("Digite o numero de linhas e o numero de colunas para matriz:")
leia(m,n)
para i de 1 ate m faca
 para j de 1 ate n faca
 escreva("Digite um valor para linha:",i," coluna:",j,":")
 matriz[i,j]<-j+1
 fimpara
fimpara
limpatela
escreval("***** Resultados da matriz *****")
para i de 1 ate m faca
 para j de 1 ate n faca
 escreva(matriz[i,j])
 fimpara
 escreval("")
fimpara
fimalgoritmo
A) (x) 2 3
2 3
B) 2 1
2 1
C) 2 0
2 0
D) 4 2
4 2
(9) - Para o algoritmo abaixo, qual deveria ser a saída para uma matriz 2X3?
A) 2 1 3
2 1 3
B) 1 2 3
1 2 3
C) (x) 2 3 4
2 3 4
D) 2 2 2
2 2 2
(10) - Para o algoritmo abaixo, qual deveria ser a saída para uma matriz 5X5?
A) 2 3 4 5 6
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10
7 8 9 10 11
B) (x) 2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10
C) 1 3 4 5 6
2 5 6 7 8
3 6 7 8 9
4 7 8 9 10
5 8 9 10 11
D) 1 2 3 4 5
2 4 5 6 7
3 5 6 7 8
4 6 7 8 9
5 7 8 9 10 
Repetição com:
Enquanto (condicao) faca
	comando1
	comando2
fimenquanto
Funções:
Função é um conceito muito usado em programação.
É como um subprograma que retorna um valor.
Há muitas funções pré-definidas nas linguagens de programação.
- Abs(valor:real):real
- Compr(c:caracter):inteiro
- Copia(c:caracter,posini, posfim:inteiro):caracter
- Exp(base,expoente)
- Int(valor:real):real
- Pi:real
- Raizq(valor:real):real
Lembrando que para cada linguagem de programação, você deverá buscar as funções pré-existentes.
Você percebeu que uma função envia um ou mais valores de quaisquer tipos e recebe um retorno.
Sim, uma função é um tipo de subalgoritmo ou subrotina que envia e recebe um valor.
Exemplo de criação de função no visualg:
algoritmo
var
	funcao fsoma(v1,v2:real):real
	var
		total:real
	inicio
		total<-v1+v2
		retorne
total
	fimfuncao
inicio
fimalgoritmo
Exemplo de criação de procedimento no visualg:
algoritmo
var
	procedimento linha
	var
	inicio
	escreval("*************")
	escreval("")
	fimprocedimento
inicio
	linha
fimalgoritmo
APOL 5
(1) - Considerando o bloco de código de um algoritmo mostrado abaixo qual seria a alternativa adequada para substituí-lo?
preco[1]<-150.00
preco [2]<-250.00
preco[3]<-10.00
preco [4]<-40.00
preco[5]<-120.00
preco [6]<-500.00
preco[7]<-12.00
preco [8]<-13.00
A) n<-8
para i de 1 ate n faca
	leia(preco(i))
fimpara
B) (x) n<-8
para i de 1 ate n faca
	leia(preco[i])
fimpara
C) para i de 1 ate n faca
	leia(preco(k))
fimpara
D) para i de 1 ate n faca
	leia(preco)
fimpara
(2) - Avalie o bloco de código de um algoritmo mostrado abaixo, e selecione a alternativa adequada para substituí-lo.
preco[1,1]<-1
preco [1,2]<-2
preco[1,3]<-3
preco [1,4]<-4
preco[2,1]<-23.00
preco [2,2]<-500.00
preco[2,3]<-12.00
preco [2,4]<-13.00
A) (x) para i de 1 ate 2 faca
 para j de 1 ate 4 faca
 leia(preco[i,j])
 fimpara
fimpara
B) para i de 1 ate 2 faca
 para j de 1 ate 4 faca
 leia(preco[i,j])
 fimpara
fimpara
C) para i de 1 ate 2 faca
 para j de 1 ate 4 faca
 leia(preco[j,i])
 fimpara
fimpara
D) para i de 1 ate 2 faca
 para j de 1 ate 4 faca
 leia(preco[i])
 fimpara
fimpara
(3) - O que a função definida no algoritmo abaixo faz?
algoritmo "Função"
// Seção de Declarações
var
n1,n2,resultado1:real
funcao fsx(v1,v2:real):real
var
 total:real
inicio
 total<-v1+(v2*v2)
 retorne total
fimfuncao
inicio
// Seção de Comandos
escreva("Digite um valor:")
leia(n1)
escreva("Digite o segundo valor:")
leia(n2)
resultado1<-fsx(n1,n2)
escreval("O valor da operação de ",n1," com ",n2," =",resultado1)
fimalgoritmo
A) A soma dos quadrados dos valores.
B) (x) A soma do primeiro valor com o quadrado do segundo valor.
C) A soma do quadrado do primeiro valor pelo segundo valor.
D) O quadrado das somas dos valores.
(4) - Para que o programa abaixo faça a divisão de dois valores, sendo o primeiro pelo segundo, quais seriam as linhas de código mais adequadas a substituirem as linhas pontilhadas?
algoritmo "Função"
// Seção de Declarações
var
n1,n2,x:real
funcao fsx(v1,v2:real):real
var
total:real
............................................
............................................
............................................
fimfuncao
inicio
// Seção de Comandos
escreva("Digite um valor:")
leia(n1)
escreva("Digite o segundo valor:")
leia(n2)
x<-fsx(n1,n2)
escreval("O valor da operação de ",n1," com ",n2," =",x)
fimalgoritmo
A) (x) inicio
	total<-v1/v2
	retorne total
B) inicio
	total<-v1/2
	retorne resultado
C) inicio
	total<-v2/v1
	retorne total
D) inicio
	total<-v2/2
	retorne resultado
(5) - Para que o programa abaixo faça a média ponderada, quais seriam as linhas de código mais adequadas para substituírem a parte pontilhada?
algoritmo "Função"
// Seção de Declarações
var
n1,n2,n3,n4,x:real
funcao fsx(v1,v2,v3,v4:real):real
var
total:real
..........................
..........................
..........................
fimfuncao
inicio
// Seção de Comandos
escreva("Digite o primeiro valor:")
leia(n1)
escreva("Digite o segundo valor:")
leia(n2)
escreva("Digite o peso do primeiro valor:")
leia(n3)
escreva("Digite o peso do segundo valor:")
leia(n4)
x<-fsx(n1,n2,n3,n4)
escreval("O valor da operação de ",n1," com ",n2," =",x)
fimalgoritmo
A) (x) inicio
	total<-((v1*v3)+(v2*v4))/(v3+v4)
	retorne total
B) inicio
	total<-((n1*n3)+(n2*n4))/(n1+n2)
	retorne resultado
C) inicio
	total<-((n1*n3)+(n2*n4))/(n3*n4)
	retorne total
D) inicio
	total<-((n1*n3)+(n2*n4))/10
	retorne resultado
(6) - Para o código que contém as funções abaixo, qual seria o resultado de uma entrada de dados que atribui o valor “Joaquim Nabuco” para a variável completo?
qt_carc<-Compr(completo)
espaco<-Pos(" ",completo) //note que é necessário um espaço em branco entre as aspas
sobrenome1<-Copia(completo,espaco+1,qt_carc)
retorne sobrenome1
A) Joaquim
B) (x) Nabuco
C) 1Nabuco
D) Nabuco, Joaquim
(7) - Para o código que contém as funções abaixo, qual seria o resultado de uma entrada de dados que atribui o valor “16” para a variável valor?
r<-Raizq(valor)
potencia<-exp(r, 3)
escreval("O resultado da operação e: “, potencia)
A) 4
B) 12
C) 48
D) (x) 64
(8) - Analise o código do algoritmo abaixo e assinale a alternativa que relaciona todas as funções pré-definidas utilizadas?
qt_carc<-Compr(nome)
espaco<-Pos(" ",nome)
x<-Copia(nome,espaco+1,qt_carc)
retorne x
A) Compr, Pos
B) Pos, Copia
C) (x) Compr, Pos, Copia
D) Nome, Compr, Pos, Copia
(9) - Procedimentos e funções tem a mesma finalidade?
A) (x) Não. Função obrigatoriamente retorna um valor, já um procedimento não retorna um valor, apenas executa uma ação.
B) Sim. Possuem a mesma finalidade e ambos retornam um valor.
C) Não, pois a Função executa uma única ação e procedimento executa uma ação e retorna um valor.
D) Sim, Funções e procedimentos são apenas sub-rotinas.
(10) - No algoritmo abaixo quantas linhas com asteriscos serão mostradas na tela?
algoritmo "Procedimento"
var
texto:caracter
	procedimento linha
	var
	inicio
		escreval("******************************************************")
		escreval("")
	fimprocedimento
inicio
// Seção de Comandos
escreval("***** Titulo *****")
escreval("")
linha
leia(x)
linha
escreval(x)
linha
linha
fimalgoritmo
A) Duas
B) (x) Quatro
C) Três
D) Nenhuma

Teste o Premium para desbloquear

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

Continue navegando

Outros materiais