Вопрос № 76981: Задача:
Реализуйте программу перебора сочетаний. Внесите необходимые изменения для того, чтобы программа правильно генерировала всевозможные сочетания с повторениями....Вопрос № 77084: Здравствуйте эксперты! Помогите мне пожалуйста написать программу для сортировки строк двумерного массива по первому элементу или хотя бы косок алгоритма. ...Вопрос № 77224: Как решить задачу?
В файле, содержащем одномерные массивы вещественных чисел, найти номер компоненты с максимальной суммой элементов.
Заранее спасибо...Вопрос № 77393: помогите додумать задачу. Надо в файле заменить пробелы на "*"(это я сделала) и удалить строки содержащие цифры(это я не знаю как сделать).
Вот что я сделала:
Uses crt;
var a,b:text;
i:byte;
s:string;
k:integer...
Вопрос № 76.981
Задача:
Реализуйте программу перебора сочетаний. Внесите необходимые изменения для того, чтобы программа правильно генерировала всевозможные сочетания с повторениями.
Отправлен: 27.02.2007, 15:01
Вопрос задал: SunFrol (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Ответ отправил: Артём1983 (статус: 1-ый класс)
Ответ отправлен: 27.02.2007, 21:52
Отвечает: Яна
Здравствуйте, SunFrol!
Т.е. Вам нужны соченания с учетом перестановок или без учета оных
Задача очень простая:
1) Без учета перестановок:
m вложенных циклов, в каждом из которых Вы проверяете неравенство вложенного индекса верхним.
2) С учетом перестановок
m вложенных циклов, во втором индекс от значения индекса+1 первого цикла до конца, в третьем от значения индекса+1 второго цикла до конца и т.д.
Реализовать неизвестное заранее количество циклов можно с помощью рекурсии.
Ответ отправила: Яна (статус: 9-ый класс)
Ответ отправлен: 28.02.2007, 08:56
Вопрос № 77.084
Здравствуйте эксперты! Помогите мне пожалуйста написать программу для сортировки строк двумерного массива по первому элементу или хотя бы косок алгоритма.
Отправлен: 28.02.2007, 01:15
Вопрос задал: Virust30 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Virust30!
Поскольку не указано условие сортировки, то привожу пример сортировки по убыванию первых элементов строк.
Смотрите приложение...
Good Luck!!!
Приложение:
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 28.02.2007, 02:39
Отвечает: Яна
Здравствуйте, Virust30!
Сортировка почти такая же как и для одномерного, т.е. сраниваете Вы первые элементы, а меняете местами целые столбцы.
Ответ отправила: Яна (статус: 9-ый класс)
Ответ отправлен: 28.02.2007, 08:58
Отвечает: Verena
Здравствуйте, Virust30!
Можно другим методом - выбор минимального (если по возрастанию) или максимального (если по убыванию) элемента.
for i := 1 to n-1 do
begin
r := i; {запоминается текущая строка}
for j := i+1 to n do
if a[r,1] > a[j,1] then r := j; {если находится ментший элемент, запоминается новый номер строки (для обратной сортировки менять знак)}
for k:=1 to m do {обмен строк}
begin
b:= a[r, k];
a[r, k]:= a[i, k];
a[i, k]:= b;
end;
end
Удачи)
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 5-ый класс)
Ответ отправлен: 28.02.2007, 14:43
Вопрос № 77.224
Как решить задачу?
В файле, содержащем одномерные массивы вещественных чисел, найти номер компоненты с максимальной суммой элементов.
Заранее спасибо
Отправлен: 28.02.2007, 21:54
Вопрос задал: Виктория (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 10)
Отвечает: Gh0stik
Здравствуйте, Виктория!
Из условия следует что файл типизированный следовательно описать его можно таким образом:
type mas=array[1..n] of real;
var f:file of mas;
Соответственно для нахождения номера компонента нам необходимо произвести такие действия:
1) Находим сумму элементов массива, который находиться в первой компоненте и предполагаем что она и есть максимальна и запоминаем номер 1.
2) Далее в цикле до конца файла находим соответствующие суммы и если полученная сумма больше максимальной заменяем ее значение на новое и запоминаем номер компоненты.
3) Выводим полученный результат на экран.
Вот схематическая реализация алгоритма:
const n=10;
type mas=array[1..n] of real;
var f:file of mas;
i,j,mxn:integer;
ms:mas;
mx,s:real;
begin
assign(f,'file.dat');
reset(f);
read(f,ms);
s:=0;
for i:=1 to n do s:=s+ms[i];
mx:=s; mxn:=1;
while not eof(f) do
begin
read(f,ms);
s:=0;
for i:=1 to n do s:=s+ms[i];
if mx < s then begin mx:=s; mxn:=filepos(f)+1;end;
end;
writeln(mxn);
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 28.02.2007, 22:40
Вопрос № 77.393
помогите додумать задачу. Надо в файле заменить пробелы на "*"(это я сделала) и удалить строки содержащие цифры(это я не знаю как сделать).
Вот что я сделала:
Uses crt;
var a,b:text;
i:byte;
s:string;
k:integer;
begin
clrscr;
write('Input file name:');
readln(s);
assign(a,s);
{$I-}
reset(a);
{$I+}
if IOResult<>0 then begin
writeln('File not found/ Press Enter for Exit...');
readln;
Halt(1);
end;
clrscr;
write('Input new file name:');
readln(s);
assign(b,s);
rewrite(b);
while not EOF(a) do
begin
readln(a,s);
for i:=1 to length(s) do
if s[i]=' ' then s[i]:='*';
writeln(b,s)
end;
close(a);
close(b);
end.
помогите плиз!
Отправлен: 01.03.2007, 21:24
Вопрос задал: Виктория (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Присяжнюк Анатолий Васильевич
Здравствуйте, Виктория!
В том же цикле где меняете пробелы попробуйте преобразовать символ в цифру.
Если это хотя бы раз получилось - то эту строку не пишите в новый файл.
Вы уже самостоятельно все почти сделали...
В том же цикле, где считываете каждую строку файла проверяйте, нет ли цифры. Все цифры можно описать как set
var chisla: set of char; {объявление множества}
begin
...
chisla:= ['0'..'9']; {присвоение множеству значений}
...
if s[i] in chisla then... {проверка на принадлежность к множеству}
Если это условие выполняется, то строку в новый файл не пишем. Можно, например, использовать continue, переходя на следующую итерацию цикла.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 5-ый класс)
Ответ отправлен: 01.03.2007, 22:15
Отвечает: Bingo
Здравствуйте, Виктория!
Есть и другой способ:
Нужно смотреть, является ли символ цифрой в кодировочной таблице ASQII
Цифры 0..9 располагаются между 48..57 позициями. Вот как нужно проверять:
if (ord(s[i])>47)and(ord(s[i])<58) then ...
Вообщем, подправил я Ваш исходник, проверил, теперь все работает.
Удачи!
Приложение:
--------- Все получится!
Ответ отправил: Bingo (статус: 1-ый класс)
Ответ отправлен: 01.03.2007, 22:45