Jump to content


Simon Viegas

Member Since 14/10/2009
Offline Last Active 16/10/2009, 09:28
-----

Posts I've Made

In Topic: Erro No Programa

15/10/2009, 14:24

boa noite ,
Esta dando erro na ultima linha (esse ésó um pedaço do prog)

program cadastro;
type
crt;
type
cadas = record
codi: integer;
prod: string[20];
unid: integer;
quan: integer;
mini: integer;
maxi: integer;
comp: real;
vend: real;
flag: char;
end;
arqui = file of cadas;

grato desde já


Olá zanguyron

Dei uma olhada no seu código...

O que eu encontrei de errado e corrigi está entre {}. Não tenho compilador aqui, mas do resto acho que está certo.

program cadastro;
{type}
uses
  crt;
type
  cadas = record
			codi: integer;
			prod: string[20];
			unid: integer;
			quan: integer;
			mini: integer;
			maxi: integer;
			comp: real;
			vend: real;
			flag: char;
		  end;

arqui = file of cadas;

Qualquer coisa é só postar.

Abraços

In Topic: Ajuda Num Programinha Em Pascal

15/10/2009, 13:46

O programa é o seguinte:


Elaborar um programa que leia dois vetores com 10 números cada, e armazene e exiba os valores dos dois vetores num terceiro vetor.

Se alguem puder fazer ou pelo menos me dar uma dica de como fazer ficaria muito grato. Minhas tentativas não deram muito certo. Vo colocar o que eu tentei aqui em casa:

program exerc01;
uses wincrt;
var n1,n2:array[1..10]of integer;
total:array[1..20]of integer;
i,j:integer;
begin
	 writeln('Informe 10 numeros para serem colocados no 1º vetor');
	 for i:=1 to 10 do
	 readln(n1[i]);
	 writeln('Informe 10 numeros para serem colocados no 2º vetor');
	 for i:=1 to 10 do
	 readln(n2[i]);
	 clrscr;
	 for i:=1 to 20 do
	 begin
		  if (i<=10) then
		  total[i]:=n1[i];
		  for j:=11 to 20 do
		  begin 
				if (i>10)then
				total[j]:=n2[i];
		  end;
	 end;
	 for i:=1 to 20 do
	 begin
		  writeln(total[i]);
	 end;
end.


flw pessoal e muito obrigado aqueles q me ajudarem



Olá Turbth,

O jeito mais fácil é você utilizando um contador para gerenciar o terceiro vetor... Daí a cada inserção vai atualizando esse "contador".

Ai você pode fazer de duas formas:

Usa um laço de repetição para cada vetor ou um para os dois. Para este último caso será inserido um elemento de cada vetor por loop.

Abraços

In Topic: Preisiso De Ajuda Em Pascal

14/10/2009, 15:24

eu presiso guardar 3 tipos de dados numa sou varivel na matriz...tentei assim nao da...max com 2 colunas funsiona..


program save_nome_numero_bi;
uses crt;
type

formandos = record
nome:string[50];
idade:byte;

end;

var
np:byte;
i:integer;
l:real;
alunos:array[1..10,1..10] of formandos;

begin
writeln('inntruza quantas pessos quer inserir');
readln(np);
clrscr;
for i:=1 to 2 do

begin
writeln('intruza o ' , i , ' nome ');
readln(alunos[i,1].nome);
writeln('Introduza a idade dessa pessoa' , i);
readln(alunos[i,2].idade);
clrscr;
end;

for i:=1 to 2 do
begin
writeln('os nome que forom introduzidos ',alunos[i,1].nome, ' idade e ' ,alunos[i,2].idade );
readln;

end;
end.


Olá boss-777,

1) Quais são os dados?
2) Qual é a matriz?


Seu código com alguns comentários:

program save_nome_numero_bi;
uses
  crt;
type
  formandos = record
				nome  :string[50];
				idade :byte;
				dado3 :tipo;
			  end;

var
  np	 :byte;
  i	  :integer;
  l	  :real;
  alunos :array[1..10,1..10] of formandos;

begin
{writeln('inntruza quantas pessos quer inserir');}
writeln('introduza quantas pessoas quer inserir');
readln(np);
clrscr;
{for i:=1 to 2 do}
for i:=1 to np do
  begin
  {writeln('intruza o ' , i , ' nome ');}
  writeln('introduza o ' ,i,' nome');
  readln(alunos[i,1].nome);
  writeln('Introduza a idade dessa pessoa' , i);
  readln(alunos[i,2].idade)
  clrscr;
  end;

for i:=1 to 2 do
  begin
  writeln('os nome que forom introduzidos ',alunos[i,1].nome, ' idade e ' ,alunos[i,2].idade );
  readln;
  end;
end.

Neste caso você tem que definir pq está usando uma matriz... Se no caso for usar uma cordenada para os dados e a outra para a quantidade de pessoas, ficaria mais ou menos assim:

var
  alunos :array[10,3] of string;

Assim acessaria:

alunos[x,y]

onde "X" é o número do aluno (i) e "y" o dado (por exemplo: nome, idade e telefone, respectivamente)


writeln('os nome que forom introduzidos ',alunos[i,1], ' idade e ' ,alunos[i,2],' telefone ',alunos[i,2]);



Qualquer coisa é só postar.


Abraços
Simon Viegas

In Topic: Erro Com "readkey"

14/10/2009, 14:36

Não sei direito, aliás... não sei nada de pascal, mas o q eu sei é q sempre q eu coloco "readkey;" ou "crtcsr;" dá um erro no pascal "Unknown indentifier."

Alguém me ajuda por favor?
Eu tinha feito usado os mesmo códigos em outra maquina e tinha funcionado. É questão da versão do pascal? Como eu faço pra resolver isso? Tem algum comando pra substituir esses dois? :blink:


Olá,

"Unknown indentifier." ~= "Termo não identificado"

1) ReadKey pertence a CRT (ou WinCRT), se essa biblioteca não está inclusa no pacote "padrão" (normalmente não está), então ela deve ser "referenciada" através do uses (ou adicionada ao pacote padrão - dá trabalho e não vale a pena, mas é possível).

2) Acridito que em vez de crtcsr o correto seria CrlScr (Clear Screen, ou algo do tipo), ou seja, mesmo que tenha "declarado" a CRT, possa ser que ocorra esse mesmo erro. (pelo mesmo desconheço esse comando).

RESUMINDO:
Declare o CRT (ou WinCRT) no uses, como sugeriu boss-777...


Outros comando da CRT;
TextColor(x); //cor do texto
TextBlackGround(x); //cor do fundo do texto
Random(x); (e Randomize;) //gera um numero aleatorio
Sound(x); //emite um som numa determinada frequência
NoSound; //para de emitir som
Delay(x); //retardo em milisegundos
Keypressed; //retorna true se uma tecla foi precionada
etc...

Abraços
Simon Viegas

In Topic: Programa Com Manipulação De String. (ajuda)

14/10/2009, 14:11

Preciso de ajuda com o seguinte programa:

Escreva um programa em PASCAL para determinar as formas nominais e para
conjugar verbos regulares de qualquer conjugação nos vários tempos verbais simples.
Estabeleça um diálogo amigável com o usuário, solicitando o verbo e informações para
direcionar o processamento.

Eu não tenho nem idéia de como começá-lo qualquer ajuda é bem-vinda, obrigada.


Olá jul_iana,

Eu posso tentar ajudar... (mas não "fazer").

Sugiro que inicialmente tente fazer um programa simples que "conjugue os verbos" a partir de determinado "radical"... (entenda como a parte que se repete)

Ex.:

Verbo "Programar" -> Radical = "Program"

Exemplo de como poderia ficar a tela de intereção.

> Digite o sufixo do verbo a ser conjugado
> Program			//digitado pelo usuário
> 
> RESULTADO:
>
> Formas Nominais:
>   infinitivo: programar
>   gerúndio: programando
>   particípio: programado
> 
> Perfeito do Indicativo
>   eu programei
>   tu programaste
>   ele programou
>   nós programamos
>   vós programastes
>   eles programaram
> 
> Futuro do Presente do Indicativo
>   eu programarei
>   tu programarás
>   ele programará
>   nós programaremos
>   vós programareis
>   eles programarão
etc


Perceba que é um processo relativemente simples.

"Radical" + "DESINÊNCIAS" (vide links abaixo)


Pronto!!

Entendendo esse processo basta agora implementar uma forma de consegui o radical diretamente do verbo no infinitivo, ou seja, o que vai mudar é que o usuário poderá digitar o verbo diretamente, e não só o radical.

Neste caso eu estou sugerindo a dividir a programaçaõ em duas partes:

1) Conjugar um verbo tendo o radical;
2) Definir um radical através de um verbo no infinitivo. (ex.: Verbo: cantar - Radical = cant)


Daí é só juntar os dois...



Links:
Verbos segundo o Wikipedia
Verbos: elementos componentes

Comando relacionados:
  • Val();
  • Str()
  • Copy();
  • "[] em uma String"
ex.: nome: String;
nome:='Pascal';
writeln(nome[3]);	//vai exibir "s" no display.


Abraços
Simon Viegas

IPB Skin By Virteq