Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 391
от 06.06.2007, 06:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 255, Экспертов: 57
В номере:Вопросов: 10, Ответов: 13


Вопрос № 89402: Помогите пожалуйста, срочно надо сдать работу, а я не представляю как это сделать... Вввести двумерный массив B (4*4), с помощью n/n1 вычислить след массива B(sp), определить число элементов массива B больших SP. С помощью n/n2 сформировать масс...
Вопрос № 89418: Всем привет! Вопрос касается среды разработки Borland Pascal 7.0. Пытаюсь скомпилить Демо-проект c:BPEXAMPLESCOMMONCHESSTV При компиляции выдается ошибка "Error 15: File not found CHESSCMD.TPU". Я так понимаю, какие-то ...
Вопрос № 89422: Помогите пожалуйстаааааааааа! Решить задачу с использованием строк и множеств. Пусть дан текст. Распечатайте те буквы, которые встречаются в каждом слове текста только один раз....
Вопрос № 89467: ПОМОГИТЕ С РЕШЕНИЕМ дана вещественная матрицапорядка9.Вычеслить сумму тех из ее элементов, расположенных на главной диагоналии выше ее, которые превосходят по величине все элементы, раположенные ниже главной диагонали. если на главной диагонали и...
Вопрос № 89475: хочу задать такой вопрос,а реально ли составить модуль для ввода пользователем данных программы?...
Вопрос № 89479: Здравствуйте уважаемые эксперты! Помогите мне пожалуйста с такой задачей: Найти длину максимально возрастающей подпоследовательности последовательности. Пример:если вводим последовательность 4 7 20 10 12 25 19 21 то длина будет 6 (4,7,10,12,19,21). С...
Вопрос № 89488: Пожалуйста, помогите решить задачу: дан двухмерный массив из 12 строк. переставить строки в массиве так, чтобы располагались след. образом: первая, двенадцатая, вторая, одинадцатая,...пятая,восьмая,шестая,седьмая....
Вопрос № 89493: Здравствуйте!требуется решение простой задачи: Вычислить Сумму элементов Матрицы(N*N),лежащих справа от главной диагонали. Заранее огромное спасибо!...
Вопрос № 89495: Здравствуйте!требуется решение простой задачи: Найти решение ур-я: Y=(x-2)^4 - 7 с точностью 10^3 на отрезке {2,6} Заранее большое спасибо!...
Вопрос № 89497: Здравствуйте!требуется решение задачи: В целочленном массиве A(n*n),найти наибольший и наименьший элементы.Строку с наименьшим элементом поменять с первой строкой матрицы.Строку с наибольшим элементом поменять с последней строкой матрицы. зар...

Вопрос № 89.402
Помогите пожалуйста, срочно надо сдать работу, а я не представляю как это сделать...
Вввести двумерный массив B (4*4), с помощью n/n1 вычислить след массива B(sp), определить число элементов массива B больших SP. С помощью n/n2 сформировать массив B2=B*sp/10,5.
Тип S. Вычисление следа матрицы SP=n сумма по i=1 Bii
Отправлен: 31.05.2007, 10:03
Вопрос задал: Агарков Лев Андреевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Агарков Лев Андреевич!

Вот решение задачи


const n=4; {размерность матрицы}
type S = array [1..n, 1..n] of real; {описание типа матрицы}
var i, j: integer; sp: real; b, b2: S;

function N1 (var a:S): real; {функция нахождения следа}
var i: integer; sp: real;
begin
sp:= 0;
for i:=1 to n do {суммируем элементы главной диагонали}
sp:= sp+a[i,j];
N1:= sp; {присваиваем значение в функцию}
end;

procedure N2 (var a, b: S; sp: real); {процедура формирования новой матрицы}
var i, j: integer;
begin
for i:=1 to n do
for j:=1 to n do
b[i,j]:= a[i,j]*sp/10.5; {каждый элемент вычисляется по формуле}
end;

begin
for i:=1 to n do
for j:=1 to n do
readln (b[i,j]); {ввод матрицы}
sp:= N1 (b); {нахождение следа - вызов функции}
N2 (b, b2, sp); {вызов процедуры формирования матрицы b2}
for i:=1 to n do
begin
for j:=1 to n do
write (b1[i,j]); {вывод на экран}
writeln;
end;
end.

---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 31.05.2007, 13:58
Оценка за ответ: 5
Комментарий оценки:
Работа сделана очень грамотно, практически без ошибок(кроме одной маленькой помарки), объяснения сделаны очень понятно. Твердая пятерка


Вопрос № 89.418
Всем привет!
Вопрос касается среды разработки Borland Pascal 7.0.
Пытаюсь скомпилить Демо-проект c:BPEXAMPLESCOMMONCHESSTV
При компиляции выдается ошибка "Error 15: File not found CHESSCMD.TPU".
Я так понимаю, какие-то параметры среды определяют использование pas вместо tpu, но вот какие?

Спасибо заранее за ответы.
Отправлен: 31.05.2007, 11:54
Вопрос задал: Примак Руслан Николаевич (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Примак Руслан Николаевич!

У Вас 2-а пути:
-скопировать с папки UNITS файлы *.tpp и *.tpu в папку с Вашей программой.
-прописать путь к *.tpu в паскале опции.каталоги(options.directories).
Удачи!

---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 31.05.2007, 12:19
Оценка за ответ: 2
Комментарий оценки:
Суть проблемы не в отсутствии CHESSCMD.TPU, а в том, что компилятор не принимает в расчет CHESSCMD.PAS


Вопрос № 89.422
Помогите пожалуйстаааааааааа!
Решить задачу с использованием строк и множеств.
Пусть дан текст. Распечатайте те буквы, которые встречаются в каждом слове текста только один раз.
Отправлен: 31.05.2007, 12:04
Вопрос задал: Eisenheim (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Verena
Здравствуйте, Бураменский Максим Александрович!

Во-первых, что подразумевается под текстом? Если это одна строка - то его (текста) размер не более 255 символов. Если нужно использовать несколько строк или какие-то специальные структуры данных (список строк, например, или массив), то нужно было указать это дополнительно. Я решила задачу для одной вводимой строки. В результате выводятся буквы, которые не повторяются в пределах одного слова, и при этом содержатся в каждом из слов текста. Во всяком случае, так поняла задачу я. Используются два множества, результат хранится в множестве bf. Вывод множества на экран не предусмотрен, поэтому выводится результат по содержанию буквы из исходной строки в множестве.


type m = set of char; {описываем тип множество}
var a, alf, w: string; {вводимая строка, временная строка, слово}
b, bf: m; {множества}
i, j: integer;
begin
readln (a); {считываем слово}
alf:=''; {обнуляем вспомогательную строку}
for i:=1 to length(a) do
if pos (a[i], alf)=0 then alf:=alf+a[i]; {записываем только неповторяющиеся символы}
j:=0; bf:=[]; b:=[]; {обнуляем переменные, в том числе множества}
while j< length (a) do
begin
inc (j);
w:=''; {слово - пока пустая строка, в цикле пишем в неё символы до пробела}
while (a[j]<>' ') and (j<=length(a)) do begin w:=w+a[j]; inc (j); end;
for i:=1 to length(w) do {просматриваем слово}
begin
if not (w[i] in b) then b:= b+[w[i]] {если символ не повторный в этом слове, то пишем его в множество}
else b:=b-[w[i]]; {иначе удаляем его из множества}
end;
if bf=[] then bf:=b; {если множество символов пустое, значит это первая}{итерация, сохраняем в него текущее множество}
bf:= bf*b; {записываем в результат пересечение множества неповторных букв}
{текущего слова и множества неповторных букв других слов}
b:= []; {для работы со следующим словом множество обнуляем}
end;
for i:=1 to length (alf) do
if alf[i] in bf then writeln (alf[i], ' '); {выводим входящие в конечное множество}
{буквы из начальной строки}
end.


Удачи! Если что не так - обращайтесь.

Отредактировано: исправлена опечатка в последней строке кода (из поста эксперта в мини-форуме).
---------
=Alexey G. Gladenyuk= (*Мастер-Эксперт)

---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 31.05.2007, 18:55
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное Verena! Вы очень мне помогли. Если бы не ваш профессионализм, я бы не здал эту задачу в срок, и меня "сожрали бы крокодилы"!

Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Бураменский Максим Александрович!

Program DigitsAndString;
Uses Crt;
Var
A,B : Set of Char;
St : String;
i : Integer;
Begin
Clrscr;
Write('Введите строку --> ');
ReadLn(St);
For i:=1 to length(st) do
IF St[i] in A
Then
B := B + [St[i]]
Else
A := A + [St[i]];
WriteLn('Результат');
For i:=1 to length(st) do
IF St[i] in A-B
Then
Write(' ',St[i]);
Readkey;
End.

---------
Это круто - машина состояний с бесконечным циклом
Ответ отправил: Вологин Всеволод Вячеславович (статус: 2-ой класс)
Ответ отправлен: 01.06.2007, 08:59
Оценка за ответ: 5
Комментарий оценки:
Самая короткая и самая правильная задача, которую мне присылали!


Вопрос № 89.467
ПОМОГИТЕ С РЕШЕНИЕМ
дана вещественная матрицапорядка9.Вычеслить сумму тех из ее элементов, расположенных на главной диагоналии выше ее, которые превосходят по величине все элементы, раположенные ниже главной диагонали. если на главной диагонали и выше ее нет элементов с указанными свойствами, то ответом должно служить сообщение об этом.
Отправлен: 31.05.2007, 17:46
Вопрос задал: Артем Фурдыга (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, Артем Фурдыга!
Предлагаю такой алгоритм: находим максимальное среди элементов (max), расположенных ниже главной диагонали, а потом сравниваем каждый из элементов, расположенных на главной диагоналии и выше ее, и если он больше max, то прибавляем его к сумме.

Приложение:

Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 31.05.2007, 18:19
Оценка за ответ: 5
Комментарий оценки:
спасибо огромное, просто я когда решал у меня не получалось с расчетами.спасибо за помощь!


Вопрос № 89.475
хочу задать такой вопрос,а реально ли составить модуль для ввода пользователем данных программы?
Отправлен: 31.05.2007, 18:51
Вопрос задал: Симонов Алексей Михайлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Симонов Алексей Михайлович!

Конечно можно, описываете процедуру(или функцию) в модуле. А потом вызваете её из
основной программы. Ну вот и все, ну как всё, посмотрим, может действительно всё.
---------
Это круто - машина состояний с бесконечным циклом
Ответ отправил: Вологин Всеволод Вячеславович (статус: 2-ой класс)
Ответ отправлен: 01.06.2007, 08:55


Вопрос № 89.479
Здравствуйте уважаемые эксперты! Помогите мне пожалуйста с такой задачей: Найти длину максимально возрастающей подпоследовательности последовательности. Пример:если вводим последовательность 4 7 20 10 12 25 19 21 то длина будет 6 (4,7,10,12,19,21). Спасибо.
Отправлен: 31.05.2007, 19:26
Вопрос задал: Oleshnikov Jamil K. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Nazar__D
Здравствуйте, Oleshnikov Jamil K.!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".

Ответ не верный, поскольку не выполняет условие задачи.

-~= Gh0stik =~-
---------
Я - українець!
Ответ отправил: Nazar__D (статус: 1-ый класс)
Ответ отправлен: 01.06.2007, 03:57

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Oleshnikov Jamil K.!
Вот тут написан алгоритм:
http://algolist.manual.ru/search/easylis.php
Немного заумно, но разобраться можно.
---------
Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 01.06.2007, 17:58


Вопрос № 89.488
Пожалуйста, помогите решить задачу:
дан двухмерный массив из 12 строк. переставить строки в массиве так, чтобы располагались след. образом: первая, двенадцатая, вторая, одинадцатая,...пятая,восьмая,шестая,седьмая.
Отправлен: 31.05.2007, 20:27
Вопрос задал: Степановский Антон (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Степановский Антон!

Код в приложении. Правда используется вспомогательный массив.

Приложение:

Ответ отправил: Louken (статус: 3-ий класс)
Ответ отправлен: 31.05.2007, 20:54
Оценка за ответ: 5
Комментарий оценки:
прекрасно решеная и понятная задача, огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Отвечает: Градов Юрий Михайлович
Здравствуйте, Степановский Антон!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".

Ответ неверный, поскольку после преобразований мы получим исходный массив - т.е. "хождение по кругу".

-~= Gh0stik =~-
---------
Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: 8-ой класс)
Ответ отправлен: 31.05.2007, 23:40


Вопрос № 89.493
Здравствуйте!требуется решение простой задачи:
Вычислить Сумму элементов Матрицы(N*N),лежащих справа от главной диагонали.
Заранее огромное спасибо!
Отправлен: 31.05.2007, 21:01
Вопрос задал: Dimas328 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Dimas328!

Квадратная матрица задается переменной razm.
Код в приложении:

Приложение:

Ответ отправил: Louken (статус: 3-ий класс)
Ответ отправлен: 31.05.2007, 21:26


Вопрос № 89.495
Здравствуйте!требуется решение простой задачи:
Найти решение ур-я:
Y=(x-2)^4 - 7
с точностью 10^3
на отрезке {2,6}
Заранее большое спасибо!
Отправлен: 31.05.2007, 21:09
Вопрос задал: Dimas328 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tribak
Здравствуйте, Dimas328!
Вот код программы:
program www;
uses crt;
var
x:array[1..4]of real;
y0,i,y,di:real;
j,l:integer;
begin
i:=2;
di:=0.0001;
j:=0;
readln(y0);
repeat
y:=sqr(sqr(i-2))-4;
if abs(y-y0) <0.001 then begin if (j<>1) and (x[j-1]<>y) then
begin inc(j); x[j]:=i; end;end;
i:=i+di;
until i>6;
for l:=1 to j do
writeln(x[l]:5:3);
readln;
end.
Ответ отправил: Tribak (статус: 2-ой класс)
Ответ отправлен: 31.05.2007, 22:13


Вопрос № 89.497
Здравствуйте!требуется решение задачи:
В целочленном массиве A(n*n),найти наибольший и наименьший элементы.Строку с наименьшим элементом поменять с первой строкой матрицы.Строку с наибольшим элементом поменять с последней строкой матрицы.
заранее большое спасибо!
Отправлен: 31.05.2007, 21:15
Вопрос задал: Dimas328 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tribak
Здравствуйте, Dimas328!
Вот код программы:
program www;
uses crt;
const
n=5;
var
b,a:array[1..n,1..n] of integer;
i,j,max,min,maxX,maxY,minX,minY:integer;
begin
clrscr;
for I:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(90)+10;
write(a[i,j],' ');
end;
writeln;
end;
maxx:=1;
maxy:=1;
minx:=1;
miny:=1;
for i:=1 to n do
for j:=1 to n do
begin
if a[i,j]>a[maxy,maxx] then begin maxx:=j; maxy:=i; end;
if a[i,j]<a[miny,minx] then begin minx:=j; miny:=i; end;
end;
b:=a;
writeln;writeln;
for j:=1 to n do
begin
b[1,j]:=a[miny,j];
b[n,j]:=a[maxy,j];
b[miny,j]:=a[1,j];
b[maxy,j]:=a[n,j];
end;
for i:=1 to n do
begin
for j:=1 to n do write(b[i,j],' ');
writeln;
end;
writeln(a[maxx,maxy]);
writeln(a[minx,miny]);
readln;
end.

end;
readln;
end.
Ответ отправил: Tribak (статус: 2-ой класс)
Ответ отправлен: 31.05.2007, 22:34


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное