Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rick_simmons

Curso - 03 - Português Estruturado

Recommended Posts

Depois de um longo tempo sem ter tempo de desenvolver o resto do curso, volto a ativa para dar continuidade ao curso (desculpe a todos que esperaram).

 

Mas vamos lá, a matéria desse módulo é o Português Estruturado, que nada mais é do que uma tradução literal de linguagem de programação (normalmente baseada em Pascal).

 

Visão Geral:

O português estruturado usa uma linguagem parecida com a dos índios "mim fazer isso, mim fazer aquilo" porém, voltada para a informática e é assim que iremos programar durante toda nossa vida ou até alguém criar uma maneira diferente de se escrever os nossos códigos.

Ex:

- Pegar primeiro número

- Pegar segundo número

- Resultado recebe primeiro número + segundo número

- Mostrar resultado na tela

 

Primeiros passos:

Assim como vimos nos tópicos anteriores, um código é chamado de Algoritmo, que seria a estrutura do nosso programa e é com ela que vamos trabalhar. No nosso primeiro algoritmo em português estruturado, vamos fazer uma calculadora simples com dois números e duas operações matemáticas (soma e subtração), após analisaremos o algoritmo:

 

01 | algoritmo calculadora

02 | variaveis

03 | num1: inteiro

04 | num2, operacao: inteiro

05 | resultado: real

06 | inicio

07 | escrever ( 'Digite o primeiro numero: ' )

08 | ler ( num1 )

09 | escrever ( 'Digite o segundo numero: ' )

10 | ler ( num2 )

11 | escrever ( 'Digite 1 para soma ou 2 para subtracao' )

12 | ler ( operacao )

13 | se operacao = 1

14 | entao resultado <- num1 + num2

15 | senao se operacao = 2

16 | entao resultado <- num1 - num2

17 | senao

18 | inicio

19 | escrever ( 'Voce escolheu uma operacao invalida.' )

20 | sair_do_programa ( verdadeiro )

21 | fim

22 | escrever ( 'O resultado da conta eh: ', resultado )

23 | fim

 

Analisando o algoritmo

- Vamos começar observando a linguagem. É uma linguagem bastante simples e legível, qualquer um pode entendê-la se prestar um pouco de atenção aos detalhes. É escrita de cima para baixo ( algoritmo sequêncial ) e possui algumas palavras-chave ( em negrito ) que não podem ser usadas para declaração de variáveis, por exemplo.

 

- Agora vamos analisar o espaçamento. Vocês todos devem estar acostumados com ferramentas como o Windows Explorer aonde você escolhe a pasta e quando acessa alguma subpasta, ela aparece logo abaixo e um pouco para a direita dando a impressão de que ela realmente está dentro da pasta mãe. Em algoritmos funciona exatamente da mesma maneira, você pode notar que algumas linhas estão mais a direita pois é uma estruturação feita para ser mais legível e para rápido entendimento de que um comando só funciona se seu "pai" for verdadeiro.

Importante: não é necessário fazer dessa maneira mas para a boa prática e melhor organização do seu código, é recomendada essa estrutura de código.

 

- Linhas. Como podem ver, eu coloquei linhas no código não só para explicar aqui mas porque elas são muito importantes na hora de verificar erros uma vez que o compilador poderá dizer muitas vezes um erro do tipo "Comando não finalizado adequadamente na linha 32" e isso nos quebra quando não temos uma contagem de linhas. Para que esse tipo de situação não aconteça, é sempre bom usar um editor que mostre as linhas do código ao lado.

 

- Analisando linha a linha. Vamos ver agora como funciona nosso algoritmo começando pela linha 01, que é nada mais, nada menos do que a declaração do nome do nosso programa.

Em seguida, na linha 02, usamos o comando para dizer pro compilador que começou a declaração de variáveis e ele entenderá que tudo embaixo desse comando até o início do programa são variáveis que serão usadas no programa.

Na declaração de variáveis, você pode notar que estamos usando 4 variáveis sendo 3 do mesmo tipo e 1 de outro tipo, mas porque eu declarei a "num1" antes da "num2" e "operacao"? Porque foi minha vontade. Poderia ser uma de cada vez, todas juntas ou como eu bem entender, desde que sejam do mesmo tipo.

Logo após declarar minha variáveis, eu usei o comando "inicio" que diz ao meu compilador que ali começa o corpo do meu programa (o que o computador deve fazer), tudo o que estiver abaixo deste comando e antes do último comando "fim" que se encontra na linha 23, será usado como comando no desenrolar do nosso programa.

Nas linhas 07 até 22 estão meus comandos. Começo enviando mensagens ao usuário para que ele nos informe valores que serão armazenados nas variáveis usando os comandos "escrever" e "ler" (que fazem exatamente o que dizem). Para sabermos que tipo de operação matemática devemos fazer, pedimos para que o usuário digite 1 se quiser somar ou 2 se quiser subtrair e se for informado um valor diferente, o programa envia um erro e termina a execução (linhas 18 até 21 - será melhor explicado depois). Para que possamos obter um resultado, temos um teste que atribui a variável "resultado" a soma OU a subtração dos números e para isso usamos o símbolo "<-" que diz que tudo o que estiver a direita dele será executado e logo após será jogado na variável que está no lado esquerdo, portanto só é possível ter UMA variável no lado esquerdo enquanto no lado direito pode se ter um programa inteiro (desde que o valor final seja do tipo da variável da esquerda). Por fim mostramos ao usuário o resultado final.

 

Algumas observações:

- Uma variável sempre terá um espaço na memória para seu valor mas se você atribuir mais de um valor, este será substituirá o antigo, então este será perdido.

- Podemos escrever um programa inteiro sem enviar nenhuma mensagem para o usuário e na execução nada será visto. Isso é muito usado em rotinas que o usuário não precisa saber, coisas como uma manutensão de arquivos temporários.

 

Exercícios:

Deixei para o final uma pequena lista de exercícios para quem quiser exercitar seus conhecimentos adquiridos até aqui. Devo lembrar que não existe nada melhor para um programador do que praticar a programação então aconselho tentar resolver os exercícios e por si próprios criar novos e resolver. Qualquer dúvida, de qualquer tipo, deve ser solicitada uma ajuda pois informática é uma ciência exata então dúvidas não podemos ter.

 

1) Acrescentar no algoritmo do tópico as operações de divisão e multiplicação.

2) Criar um algoritmo que leia a idade de 5 pessoas e diga quem é a mais velha e quem é a mais nova.

3) Criar um algoritmo que faça a fórmula de Baskara ao ser informada a fórmula x² - 2x - 8 = 0

Fórmula de Baskara:

 

-b +- raiz(b² - 4ac)

----------------------------

2a

 

É isso ai galera, espero que apoveitem e desenvolvam seu raciocínio e aprimore seus conhecimentos na arte da informática! Até mais!

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
algoritmo "TESTE"varNUM1, NUM2, OPERACAO: INTEIRORESULTADO: REALinicioEscreva("Informe o Primeiro Numero: ")Leia(NUM1)Escreva("Infome o Segundo Numero: ")Leia(NUM2)Escreval("Escolha a operacao que gostaria de fazer: ")Escreval("1 - ADIÇÃO")Escreval("2 - SUBTRAÇÃO")Escreval("3 - DIVISÃO")Escreval("4 - MULTIPLICAÇÃO")leia(OPERACAO)SE ( ( OPERACAO < 1 ) E ( OPERACAO > 4 ) )ENTAO   EscrevaL("Operacao Invalida!!")FIMSESE OPERACAO = 1 ENTAO   RESULTADO <- NUM1 + NUM2   Escreva("O resultado final é:",RESULTADO)SENAO   SE OPERACAO= 2 ENTAO	  RESULTADO <- NUM1 - NUM2	  Escreva("O resultado final é:",RESULTADO)   SENAO	  SE OPERACAO = 3 ENTAO		 RESULTADO <- NUM1 / NUM2		 Escreva("O resultado final é:",RESULTADO)	  SENAO		 SE OPERACAO = 4 ENTAO			RESULTADO <- NUM1 * NUM2			Escreva("O resultado final é:",RESULTADO)		 FIMSE	  FIMSE   FIMSEFIMSEfimalgoritmo
Corrigindo a falha.... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro exercicio basta acrescentar algumas linhas de comando:Algoritmo Calculadora...11 | escrever ( 'Digite 1 para soma, 2 para subtracao, 3 para multiplicacao e 4 para divisao' )12 | ler ( operacao )13 | se operacao = 114 | entao resultado <- num1 + num215 | senao se operacao = 216 | entao resultado <- num1 - num217 | senao se operacao = 318 | entao resultado <- num1 * num219 | senao se operaçao = 420 | entao resultado <- num1 / num221 | inicio22 | escrever ( 'Voce escolheu uma operacao invalida.' )23 | sair_do_programa ( verdadeiro )24 | fim25 | escrever ( 'O resultado da conta eh: ', resultado )26 | fimAcrescentei as linhas de comando 11, 17, 18, 19, 20 Poderia usar o comando Case, mas como não foi citado não quis estragar o curso me adiantando.Ocuringa

Compartilhar este post


Link para o post
Compartilhar em outros sites

3) Criar um algoritmo que faça a fórmula de Baskara ao ser informada a fórmula x² - 2x - 8 = 0

Fórmula de Baskara:

 

-b +- raiz(b² - 4ac)

----------------------------

2a

 

e eu sei fórmula de Bháskara?

É claro que não, afinal estou ainda na sétima série.

Posso pular essa parte?

E o curso parou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inu_Yasha,

Vou tentar ensinar a fórmula de Báskara. Normalmente se lê a fórmula assim:

ax² + bx + c = 0

 

Na fórmula x² - 2x - 8 = 0, a letra A = 1, B= -2 e C= -8.

 

Ou seja, "A" é sempre aquele que tá do lado de x² e nunca vai ser 0, "B" é que está do lado de x e "C", digamos assim, é o número isolado.

 

Quando você fizer o algoritmo, tem que notar que A (diferente) 0 (senão não seria uma equação do segundo² grau) e Delta (b² - 4ac) (diferente) negativo (nã existe a raiz quadrada de números negativos).

 

Lembrando também que você terá de fazer duas operações, uma positiva:

-b + raiz(b² - 4ac)

----------------------------

2a

 

...e outra negativa:

-b - raiz(b² - 4ac)

----------------------------

2a

 

Que na verdade, o x pode ter dois valores quando o número é maior que 0, mas isso não irá influenciar no resultado, apenas faça o algoritmo para exibir os valores de x.

Boa sorte...

 

PS.: Desculpa pela minha intromissão ao rick_simmons

Compartilhar este post


Link para o post
Compartilhar em outros sites

O.oeu nao consigo....só sei sistemas de equações, não equações de segundo grau...vou esperar até ano que vem para aprender...vlw por tentar me ensinar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Fiz um programa bem simples em pascal que pode resolver equações do 2° grau. Para quem estiver interesado em aprender um pouco de pascal http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

----------------------------------------------------------------------------------------

 

Program baskara ;

var // A questão é: X²-2x-8=0 //

a,b,c,rd,rx1,rx2:real;

function delta(a,b,c:real):real;

begin

delta:=(b * b )-4 * a * c;

end;

 

function x1(b,a,c:real):real;

begin

x1:=(-b+sqrt(delta(a,b,c)))/2*a;

end;

 

function x2(b,a,c:real):real;

begin

x2:=(-b-sqrt(delta(a,b,c)))/2*a;

end;

Begin

textcolor(lightred);

writeln('Digite o valor de "a":');

read(a);

writeln('Digite o de "b":');

read( b );

writeln('Agora digite "c":');

read( c );

rd:=delta(a,b,c);

rx1:=x1(a,b,c);

rx2:=x2(a,b,c);

writeln('Delta vale: ',rd:5:2);

writeln;

writeln('X linha vale: ',rx1:5:2);

writeln;

writeln('X duas linhas vale: ',rx2:5:2);

readkey;

 

 

 

End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algoritmo "TESTE"

var

NUM1, NUM2, OPERACAO: INTEIRO

RESULTADO: REAL

inicio

Escreva("Informe o Primeiro Numero: ")

Leia(NUM1)

Escreva("Infome o Segundo Numero: ")

Leia(NUM2)

 

Escreval("Escolha a operacao que gostaria de fazer: ")

Escreval("1 - ADIÇÃO")

Escreval("2 - SUBTRAÇÃO")

Escreval("3 - DIVISÃO")

Escreval("4 - MULTIPLICAÇÃO")

 

leia(OPERACAO)

 

SE ( ( OPERACAO < 1 ) E ( OPERACAO > 4 ) )ENTAO

EscrevaL("Operacao Invalida!!")

FIMSE

 

SE OPERACAO = 1 ENTAO

RESULTADO <- NUM1 + NUM2

Escreva("O resultado final é:",RESULTADO)

SENAO

SE OPERACAO= 2 ENTAO

RESULTADO <- NUM1 - NUM2

Escreva("O resultado final é:",RESULTADO)

SENAO

SE OPERACAO = 3 ENTAO

RESULTADO <- NUM1 / NUM2

Escreva("O resultado final é:",RESULTADO)

SENAO

SE OPERACAO = 4 ENTAO

RESULTADO <- NUM1 * NUM2

Escreva("O resultado final é:",RESULTADO)

FIMSE

FIMSE

FIMSE

FIMSE

 

fimalgoritmo

 

Corrigindo a falha.... :D

Faltou um detalhe:

SE ( ( OPERACAO < 1 ) E ( OPERACAO > 4 ) )ENTAO

 

isto nunca acontecerá porque um número não pode ser menor que 1 e maior que 4 ao mesmo tempo, desta forma fica assim:

 

SE ( ( OPERACAO < 1 ) OU ( OPERACAO > 4 ) )ENTAO

 

 

Mais de um ano depois e eu aqui lendo essas antiguidades heuhuehee

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

01 | algoritmo calculadora02 | variaveis03 | num1: inteiro04 | num2, operacao: inteiro05 | resultado: real06 | inicio07 | escrever ( 'Digite o primeiro numero: ' )08 | ler ( num1 )09 | escrever ( 'Digite o segundo numero: ' )10 | ler ( num2 )11 | escrever ( 'Digite 1 para soma, 2 para subtracao, 3 para multiplicacao, 4 para divisao' )12 | ler ( operacao )13 | se operacao = 114 | entao resultado <- num1 + num215 | senao se operacao = 216 | entao resultado <- num1 - num217 | senao se operacao = 318 | entao resultado <- num1 * num219 | senao se operacao = 420 | entao resultado <- num1 / num221 | senao22 | inicio23 | escrever ( 'Voce escolheu uma operacao invalida.' )24 | sair_do_programa ( verdadeiro )25 | fim26 | escrever ( 'O resultado da conta eh: ', resultado )27 | fimMeu consegui fazer isto, mas o negócio de por a báskara num consegui porque não sei o que tenho que escrever para conseguir ler a programação. Ajudem ae por favor!Gente por favor vamos freqüentar mais aqui, porque como eu, tem muita gente querendo aprender. Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos, esperoestar a postar no sitio certo. tenho um trabalho para entregar esta semana e não sei trabalhar muito bem com matrizes. Espero que me possam ajudar a fazer um algoritmo em português estruturado que me resolva o meu problema.

O enunciado do trabalho é o seguinte:

 

"A Igreja da Sagrada Família em Barcelona é uma obra de referência na Arquitectura, da autoria de Antoni Gaudí. Esta igreja apresenta diversas curiosidades a níveis arquitectónico, artístico e de engenharia. A sua construção iniciou-se no final do século XIX e actualmente ainda não se encontra acabada estando edificado pouco mais de metade do projecto inicial de Gaudí.

 

Uma das curiosidades desta igreja é a existência, numa das suas fachadas, de um criptograma constituído por uma matriz quadrada (4 linhas por 4 colunas). Cada elemento da matriz é um número inteiro. Existem diversas combinações de quatro elementos desta matriz cuja soma é igual a 33 (a idade de Jesus Cristo quando foi crucificado).

 

A matriz seguinte representa o criptograma referido acima:

1 14 14 4

11 7 6 9

8 10 10 5

13 2 3 15

 

 

Entre outras combinações, todas as linhas e todas as colunas, assim como ambas as diagonais, somam 33. É o caso, por exemplo, da linha 2, constituída pelos números 11, 7, 6, 9 (11+7+6+9=33). Ao todo existem 310 combinações de 4 dos elementos da matriz que produzem um somatório igual a 33.

 

Pretende-se com este trabalho o desenvolvimento de um programa em Português Estruturado que permita verificar, para uma matriz quadrada de qualquer dimensão, se o somatório das suas linhas, colunas e das duas diagonais, totalizam um determinado valor. A dimensão da matriz e o valor do somatório a verificar são dados lidos pelo programa. No final, o programa indica se a matriz verifica o somatório ou não, ou seja, se o somatório de todas as linhas, colunas e diagonais corresponde ao valor fornecido ou não (neste caso, basta que o somatório falhe uma vez).

 

Sugere-se ainda que os alunos procurem construir outras matrizes que obedeçam a esta propriedade, para além daquela que é apresentada como exemplo.

________________________________________

 

Na resolução deste trabalho deverão ser usados subprogramas e variáveis indexadas. "

 

Obrigado pela vossa atençao.

 

O meu email é tixinha_666@hotmail.com.

 

Saudações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom você postow em lugar errado sim =//.!!! + beleza

você tentow fazer? espero q sim !!

poste até onde conseguiw e quais as duvidas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso alguém esteja com problemas na criação do código através do programa Visualg, segue o exemplo do primeiro exercício:

 

var
num1, num2: inteiro
operacao, resultado: real

inicio
// Seção de Comandos

Escreva 'Digite o primeiro numero: '
Leia	(num1)

Escreva 'Digite o segundo numero: '
Leia	(num2)

Escreva '1 SOMA, 2 SUBTRAI, 3 MULTIPLICA E 4 DIVIDE'
Leia	(operacao)

Se		operacao = 1 entao
resultado <- num1 + num2
Senao Se  operacao = 2 entao
resultado <- num1 - num2
Fimse

Se  operacao = 3 entao
resultado <- num1 * num2
Senao Se  operacao = 4 entao
resultado <- num1 / num2
FIMSE

Escreva  '(O Resultado da conta eh: , resultado)'

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

iae galera! fiz o primeiro exercicio e add mais coisa em so pra ficar mais "bonitinho"!

se vcs rodarem no visualg do geito q estar ai vai pegar direitinho.

vamos ao codigo:

algoritmo "cauculadora"
// Função :
// Autor :
// Data : 12/3/2009
// Seção de Declarações 
var
valor1 , valor2 , resultado : real
operacao : caracter

// Seção de Comandos
inicio
	  escreval ("************************* Cauculadora *************************")
	  escreval ("LEGENDA: Soma (+), Subtração (-), Multiplicação (*) e Divisão (/)")
	  escreval ("---------------------------------------------------------------")
	  escreval (" ")
	  escreva ("Digite o primeiro valor: ")
	  leia (valor1)
	  escreva ("Qual operação você vai usar (digite sue sinal)? ")
	  leia (operacao)
	  escreva ("Digite o segundo valor: ")
	  leia (valor2)
	  escreval ("---------------------------------------------------------------")
	  se operacao = "+" entao
		 resultado <- valor1 + valor2
		 escreval ("Você escolheu a Adição")
		 escreval ("Sua conta:")
		 escreval (valor1," +",valor2," =",resultado)
	  fimse
	  se operacao = "-" entao
		 resultado <- valor1 - valor2
		 escreval ("Você escolheu a Subtração")
		 escreval ("Sua conta:")
		 escreval (valor1," -",valor2," =",resultado)
	  fimse
	  se operacao = "*" entao
		 resultado <- valor1 * valor2
		 escreval ("Você escolheu a Multiplicação")
		 escreval ("Sua conta:")
		 escreval (valor1," *",valor2," =",resultado)
	  fimse
	  se operacao = "/" entao
		 resultado <- valor1 / valor2
		 escreval ("Você escolheu a Divisão")
		 escreval ("Sua conta:")
		 escreval (valor1," /",valor2," =",resultado)
	  fimse
	  se (operacao <> "+") e (operacao <> "-") e (operacao <> "*") e (operacao <> "/") entao
		 escreval ("Você escreveu um sinal invalido, tente novamente")
	  fimse
fimalgoritmo

vlw galera e comentem como estar meu codigo, se ta ruim ou bom!!!

e mais uma coisa, esse tópico ñ estar mais em uso ñ? a ultima resposta é do ano passado

 

flw!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí Rick. A minha sugestão é que você poderia incorporar à esse mini curso, um compilador de portugol para melhor assimilação. Eu por exemplo antes de entrar na faculdade, estava lendo umas apostilas de portugol e praticando no Visualg. Mas ao começar o curso superior o professor que nos ensina lógica iniciou com fluxo e portugues estruturado mas, dois meses depois ele só lecionou com fluxograma. E então você pode escrever mais ou menos o que disse gandhi: "Que importância faz se seguimos por caminhos diferentes, desde que alcancemos o mesmo objetivo?". Mas nós temos o direito de encontrar um menor espaço para encurtar dois pontos. Eu vejo que tenho mais facilidade e começar com portugol de que com fluxograma. E com o ensino do primeiro, temos a nosso favor além do papel, alguns softwares para compilar que fizemos. Esse é meu ponto de vista. Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Alguem poderia fazer a questao 2 do exercicio proposta la em cima...sobre colocar a idade de cinco e mostrar qual é a mais velha no resultado....queria entender como se faz esse algoritimo...abraz

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.