Member
Статус: Не в сети Регистрация: 15.02.2005 Откуда: Saratoff
vor писал(а):
Спасибо, но ты всё таки так и не ответил эти два куска кода, которые ты написал они равназначны, т.е это тоже самое, что ли? (извини я полный ламер в Паскале) Спасибо тебе большое!!!
Member
Статус: Не в сети Регистрация: 15.02.2005 Откуда: Saratoff
vor писал(а):
!!! ВОПРОС !!!
Цитата:
Большое спасибо, тебе за програмку, но подскажи ещё кое что: Что нужно добавить в код, чтобы числа в матрицу вводились ни по строчно а в столбик:
var i,j:integer; a:array[1..6,1..6] of integer; begin writeln; for i:=1 to 6 do for j:=1 to 6 do begin write('a[',i,',',j,']='); readln(a[i,j]); end; writeln('P=',a[6,1]*a[5,2]*a[4,3]*a[3,4]*a[2,5]*a[1,6]); readln; end.
Вот этот код, там что - то с GotoXY надо замутить - напиши пожалуйста как и куда его вставить!
Advanced member
Статус: Не в сети Регистрация: 23.10.2003 Откуда: Иркутск/Майкоп
Тогда как-нибудь вот так:
uses crt;
var
i,j:integer;
a:array[1..6,1..6] of integer;
begin
writeln;
for i:=1 to 6 do
for j:=1 to 6 do begin
gotoxy(j*3,i);
read(a[i,j]);
end;
writeln('P=',a[6,1]*a[5,2]*a[4,3]*a[3,4]*a[2,5]*a[1,6]);
readln;
end.
_________________ Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.
Member
Статус: Не в сети Регистрация: 15.02.2005 Откуда: Saratoff
vor писал(а):
Тогда как-нибудь вот так:
uses crt; var i,j:integer; a:array[1..6,1..6] of integer; begin writeln; for i:=1 to 6 do for j:=1 to 6 do begin gotoxy(j*3,i); read(a[i,j]); end; writeln('P=',a[6,1]*a[5,2]*a[4,3]*a[3,4]*a[2,5]*a[1,6]); readln; end.
Большое спасибо, я разобрался сам...там всё было ок! Ошибка была в том, что я не подключал библиотеку uses crt кстати что она собой представляет???!
Member
Статус: Не в сети Регистрация: 13.03.2005 Откуда: Москва
Может здесь помогут.
Необходимо написать генератор случайный чисел работающий по нормальному распределению. Алоритм написан необходимо построить график и вывести таблицу вероятность переода из каждой точки в любую. Проблема заключается в том что вероятность в центре фигуры по таблице идёт реальная уменьшаясь к краям. Но на последних значениях вместо того что-бы обратиться практически в 0 наблюдается необьяснимый всплеск. Причём чем больше количество опытов тем результат на концах более бредовый. В чём может быть проблема.
procedure TForm1.GrdClear; var i,j:byte; begin SG.Cols[0].Clear; for i:=1 to 30 do begin SG.Cols[i].Clear; SG.Cells[0,i]:=inttostr(i); SG.Cells[i,0]:=inttostr(i); end; end;
procedure TForm1.Button1Click(Sender: TObject); var i,j,k,l,colcount,mat:integer; count: array [-100 .. 100]of longint; cnt:array[-34..34,-34..34] of longint; cnt2:array[-34..34] of longint; dis,znach,znachp:real; numcount,min:longint; U : Double; V : Double; S : Double; Sum : Double; begin Button1.Caption:=''; Button1.Enabled:=false; Button1.Repaint; PB.Position:=0; PB.Max:=0; PB.Min:=0; colcount:=strtoint(LECount.Text); dis:=strtofloat(LEDis.Text); mat:=strtoint(LEMat.Text); Chart1.Series[0].Clear; PB.Max:=colcount; for i:=-34 to 34 do cnt2[i]:=1; for i:=-34 to 34 do for j:= -34 to 34 do cnt[i,j]:=0; for i:=-100 to 100 do count[i]:=0; znachp:=1; for i:=0 to colcount-1 do begin
sum:=2; repeat u := (2*floor( Random(2))-1)*Random; v := (2*floor(Random(2))-1)*Random; sum := u*u+v*v; until (sum<1) and (sum>0); sum := sqrt(-2*ln(sum)/sum); znach := dis*u*sum+mat;
if (znach>-99) and (znach <99) then begin count[round(znach)]:=count[round(znach)]+1;
k:=round(znachp); if k<-99 then k:=-99; if k>99 then k:=99; k:=k div 3; l:=round(znach); if l<-99 then l:=-99; if l>99 then l:=99; l:=l div 3; cnt[k,l]:=cnt[k,l]+1; cnt2[l]:=cnt2[l]+1; znachp:=znach; end; if (i /(colcount div 100))=(i div (colcount div 100)) then PB.Position:=i; end;
for i:=-99 to 99 do begin if(count[i]>0) then Chart1.Series[0].AddXY(i,count[i]); end;
numcount:=0; min:=-500; for i:=-33 to 33 do if cnt2[i]>1 then begin numcount:=numcount+1; if min=-500 then min:=i; end;
SG.ColCount:=numcount+2; SG.RowCount:=numcount+2;
for i:=min to min+numcount do begin SG.Cells[0,i-min+1]:=inttostr(i); SG.Cells[i-min+1,0]:=inttostr(i); end;
for i:=min to min+numcount do for j:=min to min+numcount do if cnt2[j]<>1 then SG.Cells[i-min+1,j-min+1]:=floattostr(cnt[j,i]/(cnt2[j]-1)*100); PB.Position:=colcount; Button1.Caption:=''; Button1.Enabled:=true; end;
Member
Статус: Не в сети Регистрация: 13.03.2005 Откуда: Москва
Вопрос жизни и смерти. В понедельник уже 2 недели с последнего дня сдачи экзамена который примут только после работающей этой курсовой. Каковая не работает зараза.
Member
Статус: Не в сети Регистрация: 15.02.2005 Откуда: Saratoff
Ребята помогите пожалуйста опять, задание таково:
Дана строка. В этой строке необходимо поменять первое слово с последним и вывести на экран, что получилось! (Прога на Турбо Паскаль 7.0)
Заранее примного благодарен!
p.s: Пожалуйста полностью весь код, потому что толком я ничего не понимаю в нём из-за того, что у нас самостоятельное изучение, причём ещё и времени не хватает из-за напряга с другими дисциплинами!
Оо-оОООчеь благодарен! 10х респект VOR`у!!! ( Я сдал всё таки то задание) Препод правда цеплялась за то, что надо было с циклом делать её! (ну да бог с ним - пройденный этап)
Member
Статус: Не в сети Регистрация: 02.08.2004 Откуда: Moscow region
Crime Ну например во так (написана немного коряво, но габотает...)
Код:
program Project2; var a,s1,s2:string; i:integer; begin s1:=''; s2:=''; i:=1; writeln ('Enter string'); readln (a); //Начиная c первой буквы в строке а просматриваются все символы, пока не встретится пробел. //Если символ не пробел, то он прибавляется к строке s1. Если пробел - то со строкой s1 больше //ничего не происходит - она и есть первое слово в строке... while a[i]<>' ' do begin s1:=s1+a[i]; i:=i+1; end; //Далее просматриваем все символы в строке а с конца и до пробела. После выхода из цикла //значение переменной i - номер последнего пробела в строке - т.е. № символа + 1, с которого //начинается последнее слово... i:=length(a); while a[i]<>' ' do begin i:=i-1; end;
//Потом символы строки а начиная со значения i+1 и до конца строки записываются в строку s2/ i:=i+1; while (a[i]<>' ')and (i<=length(a)) do begin s2:=s2+a[i]; i:=i+1; end;
//Из строки а удаляем: от конца столько символов, какова длина посл. слова (строка s2) начиная с символа "длина строки а - длина строки s2", а от начала столько символов, какова длина первого слова (строки s2) начиная с символа №1 delete(a,length(a)-length(s2),length(s2)+1); delete(a,1,length(s1)+1); //Вывод на печать сначала последнего слова (s2), потом остатка строки а - т.е оставшиеся слова, //потом первое слово (s1) writeln (s2,' ',a,' ',s1); end.
_________________ Когда у общества нет цветовой дифференциации штанов, у него нет цели.
Последний раз редактировалось SoluS 26.04.2005 8:20, всего редактировалось 2 раз(а).
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения