Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Задачки на Паскале! (http://forum.oszone.net/showthread.php?t=30088)

Guest 15-12-2003 12:19 207197

Дорогой Алл помогите решить несколько задач по паскалю.... Некоторые решил остались те на которые ума нехватило....

3) В действительной квад. матрице порядка n, найти наиб. по модулю элемент. Получить  квад. матрицу порядка n-1 путем выбрасывания из исходной матрицы строки и столбцы на пересеч.  котор. наход. найденный элемент.

4) Дан текст. Найти все слова содер. наиб. кол. гласных лат. букв (a,e,i,o,u).

8) Дано натур. n, целые неотриц. a1,..,1n. Рассмотреть отрезки послед a1,..,an (предп. идущих подряд членов), состоящие из простых чисел (описать соответ. процед.) Получить наибольшую из длин рассмат. отрезков.
Завтра надо эти задачки сдать, или к зачеты не допустят...

[mzd] 17-12-2003 19:04 207198

задача 3
Решение приводит не буду, оно простое, только алгоритм:
перебирай элементы матрицы
max=0;
for i:= 1 to n do
for j:= 1 to n do
*begin
* * *if abs (a[i,j])>max then
* * * * begin
* * * * * * temp_var1:=i;
* * * * * * temp_var2:=j;
* * * * * * max:=a[i,j]
* * * * end;
*end;
Далее переносишь элементы матрицы в другую (результирующую), просматривая значания счетчиков.
for i:= 1 to n do
for j:= 1 to n do
*begin
* ** if i = temp_var1 then inc(i);
* ** if j = temp_var2 then inc(j)
* * *b[i,j]:=a[i,j]
*end;
Вот и все.

Добавлено:

задача 4
Строка - массив элементов типа char.
Просматривай её. Пусть слова отделяются пробелами, тогда ищи входжения пробелов и, тем самым, вычленяй слова. Заводи переменную, которая хранила бы текущее максимальное количество гласных. Сами гласные сделай как множество (set), а потом просто смотри, есть ли текущая буква в нем (проверка на if ... in название мнежества). А потом просто увеличивай счетчик и сравнивай его с максимальным. Извини, восьмую просто не успеваю рассмотреть - домой бегу. Но, надеюсь, хоть в чем-то я тебе помог. Удачи.


[s]Исправлено: [mzd], 19:33 17-12-2003[/s]

CREDO 17-12-2003 23:18 207199

[mzd]
Спасибо за решения, сам все дополню...
Цитата:

Строка - массив элементов типа char.
А я пробовал через string, точнее так надо было.
Ещё раз спасибо, помог во многом, сча закончу с матрицами, и вернусь. :gigi:

[mzd] 18-12-2003 18:25 207200

CREDO
string - он и есть массив типа char. :)
Но все равно, рад, что помог.

CREDO 18-12-2003 19:33 207201

[mzd]
Да с этими задачками решились. А прикол в том, что я вылечу из-за дискретки... :gigi:  Но хоть на следующий год буду знать как решать!!!

bilytur 19-12-2003 02:44 207202

[mzd]
Цитата:

for i:= 1 to n do
for j:= 1 to n do
begin
    if i = temp_var1 then inc(i);
    if j = temp_var2 then inc(j)
    b[i,j]:=a[i,j]
end;
А если temp_var1==n или temp_var2==n то херня получится!
т.е. если максимальный элемент расположен в последней строке
или последнем столбце твоя прога будет писать за границу массива. это есть некрасиво совсем :)
Я си изучаю могу на си написать. если хочешь.
Или сам исправь.

shurikan 19-12-2003 06:39 207203

[mzd]
Точнее это будет так:

Код:


ii := 0;
for i:= 1 to n-1 do
begin
 *inc(ii);
 *if i = temp_var1 then inc(ii);
 *jj := 0;
 *for j:= 1 to n-1 do
 *begin
 * * *inc(jj);
 * * *if j = temp_var2 then inc(jj)
 * * *b[i,j]:=a[ii,jj]
 *end;
end;


[mzd] 20-12-2003 19:24 207204

bilytur,
shurikan
Писал в попыхах, между написанием базы на Access, мог пропустить. Спасибо, что исправили.
CREDO
Я сам сдавал дискретку, знаю, что это такое :) Это было четыре года назад, но забыть это не могу до сих пор...


Время: 11:29.

Время: 11:29.
© OSzone.net 2001-