Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

12.06.2008, 18:02
|
|
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме: 744734
Репутация:
44
|
|
Сообщение от Fata1ex
Берешь символ - если цифра, записываешь в массив, если пробел, идешь дальше. Берешь символ - если цифра, записываешь в массив, если переход на новую строку, инкрементируешь соответствующий аргумент. И так до конца файла.
а как это программно реализовать?
Как-то так?
for i:=1 to n do
If <символ> = <цифра> then <символ>:=a[i,j]
else next <символ>?
А что тогда брать за символ и цифра? Как их обозначть?
|
|
|

12.06.2008, 18:22
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Сорри, я Паскаль совсем не помню ( Алгоритм такой можно использовать, а вот как...
|
|
|

12.06.2008, 19:47
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
4_Mosvit
Код:
ft:text;
begin
clrscr;
assign(ft,'123.pas');
Oшибка: переменная ft у тебя типа text => она не откроется на чтение из 123.pas, только 123. txt (т.к. тип text, а не file).
Считываем массив из файла (тут посложней будет) :
Код:
var mas: array of [1..n,1..m] of integer;
ft: text;
............................
assign(ft,'123.txt');
reset(ft);
......................
i:=1;
while not seekeof(ft) do
begin
j:=1;
while not seekeoln(ft) do
begin
read(ft, mas[i,j]);
j:=j+1;
end;
readln(ft);
i:=i+1;
end;
Массив считан в переменную mas...
Дальше работаешь как с обычным массивом чисел...
|
|
|

12.06.2008, 22:16
|
|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
На днях спрашивал про PASCAl 7.0:
1. Проверка включения AÌ B (все элементы массива A есть в массиве B).
Вход: Два УПорядоченных множества A и B (массивы).
Выход: да или нет (1 или 0, true или false).
i:=1; j:=1; // указатели на начало множеств
пока i¹ |A|+1 и j¹ |B|+1 цикл
если A[i] < B[j] то вернуть 0 и выход // элемент A отсутствует в B
иначе если A[i] > B[j] то j:=j+1 // переход к след. элементу B
иначе // элементы совпали – перейти к следующим
i:=i+1; j:=j+1;
конец если
конец цикла
если i=|A|+1 то вернуть 1 иначе вернуть 0.<
Вот решение (разобрался :-) :
uses crt;
const n=4, m=4; {n,m - proportion of our mas}
var a[n],b[n];
uses crt;
const n=3; m=7;
var a: array [1..n] of integer;
b: array [1..m] of integer;
i,j: integer;
otvet: boolean;
begin
clrscr;
writeln('a[',n,']');
for i:=1 to n do
begin write('Enter ',i,' Element : '); readln(a[i]); end;
writeln('b[',m,']');
for j:=1 to m do
begin write('Enter ',j,' Element : '); readln(b[j]); end;
i:=1; j:=1;
while ( (i<n+1) and (j<m+1) ) do
if a[i]<b[j] then begin otvet:=false; break; end
else
if a[i]>b[j] then j:=j+1;
else
begin i:=i+1; j:=j+1; end;
if (i=n+1) then otvet:=true else otvet:=false; writeln('otvet : ',otvet);
writeln; writeln('Press to button'); readkey;
end.
Спасибо форумчанам.
Последний раз редактировалось hoty; 12.06.2008 в 22:19..
|
|
|

14.06.2008, 13:16
|
|
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме: 744734
Репутация:
44
|
|
Опять возникла проблема,
Задание тоже: Переставить столбцы матрицы в порядке возрастания наибольших элементов столбцов.
Выводить максимальные элементы столбцов не обязательно, я составил из максимальных элементов одномерный массив и в нём хотел всё расствить, но ничего не меняется
Вот как у меня получилось, но почему-то не работает, исправте пожалуйста.
Код:
program lab2;
uses crt;
const n=5; m=5;
var mas: array[1..n,1..m] of integer;
mne:array[1..99] of integer;
ft: text;
i,j:integer;
x,y:integer;
begin
clrscr;
assign(ft,'123.txt');
reset(ft);
i:=1;
while not seekeof(ft) do
begin
j:=1;
while not seekeoln(ft) do
begin
read(ft, mas[i,j]);
j:=j+1;
end;
readln(ft);
i:=i+1;
end;
writeln;
writeln('Ishodnaya matrica:');
writeln;
for i:=1 to n do begin
for j:=1 to m do write(' ',mas[i,j]);
writeln;
end;
writeln;
writeln (' Massiv iz naibolchih el-ov stolbcov: ');
for i:=1 to n do
writeln (' max el-ent ',i,' stolbca ',mne[i]:4);
for i:=1 to n do
if mne[i]<x+1 then
y:=mne[i];
writeln;
writeln (' Polucheniy massiv ');
for i:=1 to n do
begin
for j:=1 to m do
write (mas[i,j]:4);
writeln;
end;
readkey;
end.
|
|
|

15.06.2008, 04:59
|
|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
В ПАСКАЛЕ:
Есть задание: отсортировать массив различными способами.
почти сделал)
но ещё нужно: "Правильность сортировки проверить путем подсчета контрольной суммы и числа серий в массиве."
что такое "контрольная сумма" понятно. Это сумма элементов до сортировки и после.
но, что такое "число серий".??.??. ??
Подскажите, плиз.
+ скажите, как сделать подсветку символа
(цифры, хранящейся в integer, допустим a:=7).
Последний раз редактировалось hoty; 15.06.2008 в 06:21..
|
|
|

15.06.2008, 07:42
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
http://faqs.org.ru/progr/common/sorting.htm
Посмотри тут, может разберешься
|
|
|

15.06.2008, 10:34
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
4_hoty
Опять не туда рыть начал =)
что такое "контрольная сумма" понятно. Это сумма элементов до сортировки и после.
т.е. ты хочешь сказать, что от перестановки слагаемых сумма поменяется?!?!?! 
Контрольная сумма - биты - 0 и 1 - XOR'ом считаются...
|
|
|

15.06.2008, 11:13
|
|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
to Fata1ex : thank.
to Dober'man :
Сообщение от Dober'man
4_hoty
Опять не туда рыть начал =) т.е. ты хочешь сказать, что от перестановки слагаемых сумма поменяется?!?!?! 
ужас, я подумал, что сумма не изменится если отсортировать массив ))))
Контрольная сумма - биты - 0 и 1 - XOR'ом считаются...
thank, посмотрю.
To All : кто-нибудь в курсе, что такое число серий в массиве?
|
|
|

15.06.2008, 11:20
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
4_Mosvit
Выводить максимальные элементы столбцов не обязательно, я составил из максимальных элементов одномерный массив и в нём хотел всё расствить, но ничего не меняется
Вот как у меня получилось, но почему-то не работает, исправте пожалуйста.
Исправил:
Код:
program lab2;
uses crt;
const n=5; m=5;
var mas: array[1..n,1..m] of integer;
mne:array[1..n] of integer;
ft: text;
i,j:integer;
x,y:integer;
begin
clrscr;
assign(ft,'123.txt');
reset(ft);
i:=1;
while not seekeof(ft) do
begin
j:=1;
while not seekeoln(ft) do
begin
read(ft, mas[i,j]);
j:=j+1;
end;
readln(ft);
i:=i+1;
end;
writeln;
writeln('Ishodnaya matrica:');
writeln;
for i:=1 to n do begin
for j:=1 to m do write(' ',mas[i,j]);
writeln;
end;
writeln;
writeln (' Massiv iz naibolchih el-ov stolbcov: ');
for i:=1 to n do
begin
for j:=1 to m-1 do
begin
if mas[j,i]<mas[j+1,i] then
begin
mne[i]:=mas[j+1,i];
end;
end;
writeln (' max el-ent ',i,' stolbca ',mne[i]:4);
end;
// for i:=1 to n do
// if mne[i]<x+1 then
// y:=mne[i];
// writeln;
// writeln (' Polucheniy massiv ');
// for i:=1 to n do
// begin
// for j:=1 to m do
// write (mas[i,j]:4);
// writeln;
// end;
readkey;
end.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|