[Pascal] Matrix code!
Aqui esta um codigo para mostrar no monitor o matrix, foi uma pequena brincadeira que fiz no pascal nas aulas!
program webtuga;
uses crt;
begin
textcolor(2);
Randomize;
repeat
Writeln (\\'101010101010101 01010101 0101 0101 010| www.playboy.com |01 0101011010010101\\');
Writeln(\\'$10%10 10$10 1010% 101%01010 1010"1010| www.playboy.com | 10 10101 0"10101#0\\');
until KeyPressed;
end.
ou
program webtuga;
uses crt;
begin
textcolor(2);
Randomize;
repeat
Writeln (\\'101010101010101 01010101 0101 0101 010| www.wetuga.com |01 0101011010010101\\');
Writeln(\\'$10%10 10$10 1010% 101%01010 1010"1010| www.webtuga.com | 10 10101 0"10101#0\\');
until KeyPressed;
end.
Espero que gostem, comentem!
Aqui fica um ficheiro para quem não tem pascal poder ver o resultado:
http://cenourinhadesign.no.sapo.pt/matris.exe (http://cenourinhadesign.no.sapo.pt/matris.exe)
vou experimentar fazer isso na aula de programação
não há paciencia para ir ao pascal aki!
depois podem gozar comigo mas respondem 1Ã,º o que é a linguagem pascal ? : happy : : happy :
Quotedepois podem gozar comigo mas respondem 1Ã,º o que é a linguagem pascal ? : happy : : happy :
Pascal é uma linguagem de programaçao basica que ainda utiliza o uma janela de Dos para correr, entanto já existem versoes mais graficas!
Se quiseres dar uns toques avisa!
quero ver é se comeco com o C++, nao sei o que é mas deve ser \\"cool\\" : happy : : happy : : rir :
o melhor é comecares com o pascal ou o delphi... pois é um grande avanco comecar com c++....
Quoteo melhor é comecares com o pascal ou o delphi... pois é um grande avanco comecar com c++....
As tuas palavras são as minhas!
pois !!!
mas onde é que começo : ajuda :
se comprares o livro de bases de programação do 10Ã,º ano pode te ajudar muito... mas se kiseres algo + free eu tenho montes de tuts, mas em ingles. se quiseres na mesma manda me uma MP
pois em ingles não percebo quase patavina ! mas mesmo assim mandame sff
Eu aconselho a começares com BASIC ou Java.
Program MATRIX;
Uses Crt;
Var
x,y,n,i,r:integer;
letra:char;
begin
Clrscr;
n:=4;
while n>2 do begin {ciclo infinito}
x:=1+Random(80);
y:=Random(255);
r:=Random(15);
for i:=y to y+r do begin
letra:=chr(Random(255));
for r:=1 to 2 do begin
if r> 1 then
Textcolor(2);
gotoxy(x,i);
write(letra);
delay(2);
end;
end;
end;
end.
tente este vi este na net e fiz umas alteracoes.. valeu
esse nao ta grande coisa lol por ke ta smp a repetir a mma coisa, eu tinha feito um em ke punha numeros aleattórios, mas já nao sei onde o pus =/ já me deixei da prog de pascal àmunto =P
Antes de mais, este tópico levou aqui um desenterro...
Mas, mais bonito que isto visto em Pascal simples é fazer gráficamente com OpenGL. Cria-se uma matrix N x N x N e uma matriz N x N com pontos de mudança. Colocam-se os valores, que até podem gerar caracteres (que, se observarem bem, a Matrix não utiliza números) e vão-se incrementando os pontos de mudança de X em X ciclos.
No final fica um cubo tridimensional com os caracteres a serem mudados dinâmicamente e onde é possivel viajar para ver as colunas mais fundas do Matrix.
oi.. precisava da ajuda de alguem neste programa PASCAL. é um trabalho para a escola que estou a desenvolver mas ta mau . ele nao funciona se alguem me ajudar agradeço.. toda a ajuda é bem vinda.. tambem estou aberto a sugestoes.. valeu.
unit Alunos1;
interface
uses crt;
type disciplina=record
mat:string[15];
port:string[15];
ing:string[15];
fq:string[15];
psi:string[15];
ac:string[15];
ai:string[15];
rc:string[15];
tic:string[15];
ef:string[15];end;
type aluno=record
num:integer;
nome:string[20];
d:disciplina;end;
type alunos=array[1..30] of aluno;
function menu:byte;
function inserir(var alu:alunos;n:integer):integer;
procedure modificar(var alu:alunos;n:byte);
procedure eliminar(var alu:alunos);
function media_curso(var alu:alunos;n:byte):real;
function media_aluno(var alu:alunos):real;
procedure mostrar_todos(alu:alunos;n:byte);
function media_maluno(var alu:alunos;n:byte):real;
procedure mostrar_msup(var alu:alunos;n:byte);
procedure mostrar_minf(var alu:alunos;n:byte);
implementation
function menu:byte;
var op:integer;
begin
clrscr;
writeln(\\'---MENU---\\');
writeln(\\'1->Mntroduzir Aluno\\');
writeln(\\'2->Modificar Notas\\');
writeln(\\'3->Eliminar Aluno\\');
writeln(\\'4->Calcular media do curso\\');
writeln(\\'5->Calcular media de um Aluno\\');
writeln(\\'6->Mostrar todos os Alunos\\');
writeln(\\'7->Mostrar o melhor Aluno\\');
writeln(\\'8->Mostrar os Alunos com uma media superior a um valor introduzido pelo utilizador\\');
writeln(\\'9->Mostrar os Alunos com uma media inferior a um valor introduzido pelo utilizador\\');
writeln(\\'10->opcoes\\');
writeln(\\'11->sair\\');readln(op);
if op<=11 then begin
menu:=op end else begin
writeln(\\'Valor invalido, Escolha uma opcao entre 1 e 11\\');end;
end;
function inserir(var alu:alunos;n:integer):integer;
{inserir um novo aluno e as respectivas notas}
var qa,i:integer;
begin
clrscr;
write(\\'quantos Alunos deseja inserir?\\');readln(qa);
for i:=1 to qa do begin
writeln(\\'insira os dados do Aluno\\');
with alunos[n+i] do begin
num:=n+i;
write(\\'nome\\');readln(nome);
writeln(\\'insira a nota para a disciplina de..\\');
writeln(\\'matematica\\');readln(d.mat);
writeln(\\'portugues\\');readln(d.port);
writeln(\\'ingles\\');readln(d.ing);
writeln(\\'Fisico Quimica\\');readln(d.fq);
writeln(\\'PSI\\');readln(d.psi);
writeln(\\'Arquitectura de Computadores\\');readln(d.ac);
writeln(\\'Area deIntegracao\\');readln(d.ai);
writeln(\\'Redes de Computadores\\');readln(d.rc);
writeln(\\'TIC\\');readln(d.tic);
writeln(\\'Educacao Fisica\\');readln(d.ef);end;end;
inserir:=n+qa;
end;
procedure modificar(var alu:alunos;n:byte);
{alterar a nota de um aluno}
var nu:integer;yn:string;
begin
writeln(\\'Modificacao das Notas\\');
writeln(\\'Numero do Aluno?\\');readln(nu);
writeln(\\'Tem a certeza que pretende eliminar este Aluno?(n.\\',num,\\')\\');
writeln(\\'(y/n)\\');readln(yn);upcase(yn);
if yn:=\\'Y\\' then begin
if nu<n then begin
writeln(\\'Aluno nao Existente\\');end else
writeln(alunos[nu].nome);
writeln(alunos[nu].d);
writeln(\\'insira a nota para a disciplina de..\\');
writeln(\\'matematica\\');readln(d.mat);
writeln(\\'portugues\\');readln(d.port);
writeln(\\'ingles\\');readln(d.ing);
writeln(\\'Fisico Quimica\\');readln(d.fq);
writeln(\\'PSI\\');readln(d.psi);
writeln(\\'Arquitectura de Computadores\\');readln(d.ac);
writeln(\\'Area deIntegracao\\');readln(d.ai);
writeln(\\'Redes de Computadores\\');readln(d.rc);
writeln(\\'TIC\\');readln(d.tic);
writeln(\\'Educacao Fisica\\');readln(d.ef);end else
Writeln(\\' Volte sempre\\');
end;
procedure eliminar(var alu:alunos);
{eliminar um aluno}
var nu:integer;yn:string;
begin
writeln(\\'---Eliminar Aluno---\\');
writeln(\\'Numero do Aluno a eliminar?\\');readln(nu);
writeln(\\'Tem a certeza que deseja eliminar este Aluno?\\');
writeln(\\'(y/n)\\');readln(yn);upcase(yn);
if yn=\\'Y\\' then begin
alunos[nu].nome:=\\'ELIMINADO\\';
with alunos[nu] do begin
{quando eliminado, as notas ficam a 0}
d.mat:=0;
d.port:=0;
d.ing:=0;
d.psi:=0;
d.ac:=0;
d.ai:=0;
d.rc:=0;
d.tic:=0;
d.ef:=0;end;end else
writeln(\\'Fica para a proxima\\');end;
end;
function media_curso(var alu:alunos;n:byte):real;
{media do curso}
var cont:integer;
md,md1:real;
begin
cont:=0;
writeln(\\'media do curso\\');;
for i:=1 to n do begin
if aluno.d <>0 then begin
{nao quero calcular os alunos eliminados, isto é, com notas de 0}
with aluno do begin
with d do begin
md:=(mat+port+ing+fq+psi+ac+ai+rc+tic+ef)/10;
cont:=cont+1
md1:=md1+md;end;end;end;
md1:=md1/cont;
writeln(\\'Media do curso e de: \\',md1);
media_curso:=md1;end;
function media_aluno(var alu:alunos):real;
{calcular a media de um aluno escolhido pelo utilizador}
var md:real; nu:integer;
begin
writeln(\\'media de um aluno\\');
writeln(\\'insira o numero do aluno\\');readln(nu);
with aluno[nu] do begin
with d do begin
md:=(mat+port+ing+fq+psi+ac+ai+rc+tic+ef)/10;
writeln(\\'A media do aluno e: \\',md);end;
media_aluno:=md;end;
procedure mostrar_todos(alu:alunos;n:byte);
{listar todos os alunos}
var i:integer;
begin
wrriteln(\\'Lista de todos os alunos\\');
for i:=1 to n do begin
with vect do begin
writeln(num);
writeln(nome);
writeln(\\'disciplinas\\');
with d do begin
writeln(\\'Matematica \\',mat);
writeln(\\'Portugues \\',port);
writeln(\\'Ingles \\',ing);
writeln(\\'Fisico Quimica \\',fq);
writeln(\\'PSI \\',psi);
writeln(\\'Arquitectura de Computadores \\',ac);
writeln(\\'Area de Integracao \\',ai);
writeln(\\'Redes de Computadores \\',rc);
writeln(\\'TIC \\',tic);
writeln(\\'Educacao Fisica \\',ef);
writeln;end;end;end;end;
function media_maluno(var alu:alunos;n:byte):real;
{media do melhor aluno}
var md,md1:real;
i:integer;
begin
writeln(\\'Media do melhor Aluno\\');
md1:=0;
for i:=1 to n do begin
if aluno.d <>0 then begin
{nao quero calcular os alunos eliminados, isto é, com notas de 0}
with aluno do begin
with d do begin
md:=(mat+port+ing+fq+psi+ac+ai+rc+tic+ef)/10;
if md<md1>mu do begin
with aluno do begin
writeln(num);
writeln(nome);
writeln(\\'disciplinas\\');
with d do begin
writeln(\\'Matematica \\',mat);
writeln(\\'Portugues \\',port);
writeln(\\'Ingles \\',ing);
writeln(\\'Fisico Quimica \\',fq);
writeln(\\'PSI \\',psi);
writeln(\\'Arquitectura de Computadores \\',ac);
writeln(\\'Area de Integracao \\',ai);
writeln(\\'Redes de Computadores \\',rc);
writeln(\\'TIC \\',tic);
writeln(\\'Educacao Fisica \\',ef);
writeln(\\'media:\\',md);
writeln;end;end;end;end;end;end;
procedure mostrar_minf(var alu:alunos;n:byte);
{apresentar todos os alunos com uma media inferior a um valor introduzido pelo utilizador}
var i:integer;
md,mu:real;
begin
writeln(\\'insira a media a compara\\');readln(mu);
writeln(\\'Lista dos alunos com uma media superior a: \\',mu);
for i:=1 to n do begin
with aluno do begin
with d do begin
md:=(mat+port+ing+fq+psi+ac+ai+rc+tic+ef)/10;
if md<mu do begin
with aluno do begin
writeln(num);
writeln(nome);
writeln(\\'disciplinas\\');
with d do begin
writeln(\\'Matematica \\',mat);
writeln(\\'Portugues \\',port);
writeln(\\'Ingles \\',ing);
writeln(\\'Fisico Quimica \\',fq);
writeln(\\'PSI \\',psi);
writeln(\\'Arquitectura de Computadores \\',ac);
writeln(\\'Area de Integracao \\',ai);
writeln(\\'Redes de Computadores \\',rc);
writeln(\\'TIC \\',tic);
writeln(\\'Educacao Fisica \\',ef);
writeln(\\'media:\\',md);
writeln;end;end;end;end;end;end;
LOL
tentem fazer isso em assembler... aàvêm o que é duro... LOL
ta aqui o programa.. ajudem me..xD
tenhu dificuldades nas variaveis dos procedimentos e funçoes.. pf alguem faça esse programa rodar
program Modulo5;
uses alunos,crt;
var op,na:integer
begin
na:=0;
op:=menu;
clrscr;
while (op>=1) and (op<=11) do begin
case op of
1:begin
na:=inserir(va,na);
raadln;end;
2:begin
clrscr;
modificar(va,na);
readln;end;
3:begin
clrscr;
eliminar(va);
readln;end;
4:begin
clrscr;
md1:=media_curso(va,na):real;
readln;end;
5:begin
clrscr;
md:=media_aluno(va):real;
readln;end;
6:begin
clrscr;
mostrar_todos(va,na);
readln;end;
7:begin
clrscr;
md1:=media_maluno(va,na):real;
readln;end;
8:begin
clrscr;
mostrar_msup(va,na);
readln;end;
9:begin
clrscr;
mostrar_minf(va,na);
readln;end;end;
end.
sharkcmlm, o teu programa está intragável. Não tive paciência para o ler, simplesmente porque a primeira coisa para que olhei foi a forma como fazias a média das notas.
Quando queres fazer um programa que pode realizar a mesma operação a valores que podem ser em número indeterminado, o que se faz é armazenar essas valores num array (ou lista, vector, etc), e uma variável com o número de valores que tens, e aplicares as operações num ciclo, tipo:
for (i = 0; i < max; i++) {
total = total + notas[i];
}
media = total / max;