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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Шичко Игорь
Статус: Практикант
Рейтинг: 181
∙ повысить рейтинг >>
Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 158
∙ повысить рейтинг >>
Пупорев Юрий Борисович
Статус: Специалист
Рейтинг: 109
∙ повысить рейтинг >>

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

Выпуск № 741
от 30.11.2008, 07:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 151635: Здравствуйте эксперты! Помогите решить задачу: Составить программу, проверяющую, является ли матрица А трехдиагональной. Матрицу А нужно вводить с клавиатуры....


Вопрос № 151638: Здравствуйте эксперты! Объясните пожалуйста алгоритм программы....
Вопрос № 151647: Здравствуйте, уважаемые Эксперты! Помогите, пожалуйста, в решении следующих задач: 1. Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M × N, у которой все элементы I-й строки имеют значение 10∙I (I = 1, …, M)....
Вопрос № 151650: Добрый день!Помогите пожалуйста решить задачи на массивы: 1.Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi>=P, где p - произведение элементов масс...
Вопрос № 151654: <b>Здравствуйте люди добрые!!!!</b> Нужен исходник шифрования методом Цезаря, только текст должен считываться из файла, и записываться в него. Шифрация и дешифрация!!!!!!...
Вопрос № 151666: Уважаемые эксперты пожадуста помогите решить задачу!!! Задача: как поменять местами наибольший и наименьший элементы в одномерном массива ??? <img src="http://rusfaq.ru/images/Forum/72.gif" border="0"> Пожалуста..... <img src="http://rusfaq.ru/image...
Вопрос № 151680: Доброго времени суток,уважаемые эксперты!Помогите пожалуйста с задачей: Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi<=p, где p - сумма элементов...
Вопрос № 151682: Известна информация о сотрудниках некоторого предприятия: -фамилия,инициалы, -должность, -оклад. Сформируйте таблицу,записав в неё всю известную информацию о каждом сотруднике. Сформировать поле "Подоходный налог", учитывая, что...
Вопрос № 151721: Уважаемые эксперты!!! Помогите плз с такой задачей: составить программу для построения графика функции на указанном промежутке: X^2*sin^2(3*x) на промежутке от 0 до 1.6. Помогите пожалуйста!!!...

Вопрос № 151.635
Здравствуйте эксперты! Помогите решить задачу: Составить программу, проверяющую, является ли матрица А трехдиагональной. Матрицу А нужно вводить с клавиатуры.
Отправлен: 24.11.2008, 13:54
Вопрос задал: Петров Иван Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Verena
Здравствуйте, Петров Иван Сергеевич!
Матрица называется трехдиагональной, если все ее элементы, кроме элементов главной и примыкающих к ней диагоналей, равны нулю. Выглядит это примерно так:

Координаты элементов главной диагонали определяются условием равенства номера столбца номеру ряда, т.е i=j. Соседние диагонали можно выразить условиями j=i-1 и j=i+1 для левой и правой диагоналей соответственно. Для того, чтобы проверить условие задачи, достаточно проверить равенство нулю всех элементов, этому условию не удовлетворяющих. Это можно выразить, например, таким условием:
if (not ((i=j) or (j=i+1) or (j=i-1))) and (a[i, j]<>0) - этот элемент нарушает условие трёхдиагональности
Честно скажу, я не знаю, обязательно ли должны быть ненулевыми элементы на самих диагоналях, поэтому это условие я не пр оверяю. Если необходимо - достаточно добавить проверку противоположного условия:
if ((i=j) or (j=i+1) or (j=i-1)) and (a[i, j]=0) - этот элемент нарушает (возможно) условие трёхдиагональности
Для упрощения кода в случае нахождения одного несоответствия программа завершается через halt - чтобы не использовать флаги.
Код в приложении.
Удачи!

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 24.11.2008, 15:45

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236542 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.638
    Здравствуйте эксперты! Объясните пожалуйста алгоритм программы.

    Приложение:

    Отправлен: 24.11.2008, 14:00
    Вопрос задал: Петров Иван Сергеевич (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Шичко Игорь
    Здравствуйте, Петров Иван Сергеевич!
    Примерно так:
    begin
    randomize; {Запуск генератора случайных чисел}

    for i:=1 to n do
    begin
    for j:=1 to m do
    begin
    a[i,j]:=random(10); {заполение матрицы случайными числами от 1 до 10}
    write(a[i,j]:4); {вывод на экран}
    end;
    writeln;
    end;

    repeat
    write('Enter K:');
    readln(k); { ввод номера столбца, который нужно удалить, должен быть в интервале от 1 до m}
    until (k>0)and(k<=m);

    repeat
    write('Enter P:');
    readln(p); { ввод номера строки, которую нужно удалить, должна быть в интервале от 1 до n}
    until (p>0)and(p<=n);

    for i:=1 to n-1 do
    for j:=1 to m-1 do
    a[i,j]:=a[i+ord(p<=i),j+ord(k<=j)]; {вычисление новых элементов матрицы}
    {Функция ord(p<=i) возвращает 0 если условие в скобках не выполняется, т.е. при i<p}
    {Функция ord(p<=i) возвращает 1 если условие в скобках выполняется, т.е. при p<=i}

    for i:=1 to n-1 do
    begin
    for j:=1 to m-1 do
    write(a[i,j]:4); {вывод результата}
    writeln;
    end;
    readln;
    end.
    Ответ отправил: Шичко Игорь (статус: Практикант)
    Ответ отправлен: 24.11.2008, 15:26

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236537 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.647
    Здравствуйте, уважаемые Эксперты! Помогите, пожалуйста, в решении следующих задач:
    1. Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M × N, у которой все элементы I-й строки имеют значение 10∙I (I = 1, …, M).
    2. Даны целые положительные числа M, N, число D и набор из N чисел. Сформировать матрицу размера M ґ N, у которой первая строка совпадает с исходным набором чисел, а элементы каждой следующей строки равны соответствующему элементу предыдущей строки, умноженному на D (в результате каждый столбец матрицы будет содержать элементы геометрической прогрессии).
    3. Дана матрица размера M × N и целое число K (1 < K < M). Вывести элементы K-й строки данной матрицы.
    4. Дана матрица размера M × N. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, …). Вывод элементов производить по столбцам, условный оператор не использовать.
    5. Дана квадратная матрица A порядка M (M — нечетное число). Начин ая с элемента A[1,1] и перемещаясь против часовой стрелки, вывести все ее элементы по спирали: первый столбец, последняя строка, последний столбец в обратном порядке, первая строка в обратном порядке, оставшиеся элементы второго столбца и т. д.; последним выводится центральный элемент матрицы.
    Отправлен: 24.11.2008, 14:55
    Вопрос задала: Solnce1387 (статус: Посетитель)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Шевченко Дмитрий
    Здравствуйте, Solnce1387!

    В приложении код программ для заданий 1 и 3.

    С уважением, Дмитрий.

    Приложение:

    Ответ отправил: Шевченко Дмитрий (статус: 5-й класс)
    Ответ отправлен: 24.11.2008, 22:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236597 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Пупорев Юрий Борисович
    Здравствуйте, Solnce1387!
    Решение задач 2 и 4 в приложении.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
    Ответ отправлен: 25.11.2008, 13:48

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236644 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


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

    Задача №5 в приложении.
    Матрица "обходится" по спирали, элементы выводятся в одну строку.
    Удачи!

    Приложение:

    ---------
    Итерация от человека, рекурсия — от Бога (Питер Дойч)

    Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
    Украина, Киев
    Тел.: +380979536619
    Адрес: Украина г.Киев
    ----
    Ответ отправлен: 28.11.2008, 18:32

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 237004 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.650
    Добрый день!Помогите пожалуйста решить задачи на массивы:
    1.Задана последовательность X = (x1, x2, …, x10).
    Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi>=P, где p - произведение элементов массива X, имеющих чётные индексы. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
    X = {2.95, 7.34, -4.2, 0.5, -4.9, 0.22, 0.35, 1, 10.1, 12}.
    2.На двумерный:
    Ai,j=1.473+j*i,если i+j>5
    Ai,j=cos(j*i),в остальных случаях
    n=3,m=6
    Элементы матрицы, имеющие отрицательные значения, сделать равными нулю, подсчитать и напечатать число этих элементов.
    Буду очень благодарна!
    Отправлен: 24.11.2008, 15:04
    Вопрос задала: Evela (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Шичко Игорь
    Здравствуйте, Evela!
    Предлагаю следующий вариант решения. Код в приложении.

    Приложение:

    Ответ отправил: Шичко Игорь (статус: Практикант)
    Ответ отправлен: 24.11.2008, 20:37

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236586 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вопрос № 151.654
    Здравствуйте люди добрые!!!!
    Нужен исходник шифрования методом Цезаря, только текст должен считываться из файла, и записываться в него. Шифрация и дешифрация!!!!!!

    Приложение:

    Отправлен: 24.11.2008, 15:50
    Вопрос задал: Harlamenkov Alexandr Nikolaevich (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Verena
    Здравствуйте, Harlamenkov Alexandr Nikolaevich!
    Данный шифр является одним из самых простых и легко алгоритмизируемых.
    © Цитата: Википедия
    Шифр Це́заря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций. Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации — шифр простой замены.

    Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Естественным развитием шифра Цезаря стал шифр Виженера. С точки зрения современного к риптоанализа, шифр Цезаря не имеет приемлемой стойкости.

    Я приведу Вам пример реализации, рассчитанный на использование алфавита из маленьких латинских букв (т.е. [abcdefghijklmnopqrstuvwxyz]). Алгоритм совершенно очевидный, берём символ, находим его номер в алфавите и заменяем на символ, следующий в алфавите через заданный шаг (шаг вводится при запуске). Алфавит рассматривается как замкнутый, т.е. из конча мы опять идём в начало, а из начала - в конец. Вообще, тут можно было бы воспользоваться остатком от деления, без заморочек с проверками, но при нумерации с 1 это не очень удобно, поэтому привожу примитивный вариант. Код в приложении.
    Удачи!

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 25.11.2008, 02:09

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236610 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.666
    Уважаемые эксперты пожадуста помогите решить задачу!!! Задача: как поменять местами наибольший и наименьший элементы в одномерном массива ??? Пожалуста.....
    Отправлен: 24.11.2008, 17:25
    Вопрос задала: Гриценко Тория Юрьевна (статус: Посетитель)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Максимцов Дмитрий
    Здравствуйте, Гриценко Тория Юрьевна!
    Необходимо объявить новую переменную... Ей присвоить значение минимума, потом минимуму присвоить значение максимума, и в заключение максимуму присвоить значение вот той новой переменной :)...

    Надеюсь вам помогуло, если что можно подробней, но нужно только программу видеть ;)...
    Ответ отправил: Максимцов Дмитрий (статус: 1-й класс)
    Ответ отправлен: 24.11.2008, 17:32

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236554 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Яровой Сергей Владимирович
    Здравствуйте, Гриценко Тория Юрьевна!
    Вот примерный вариант решения задачи. Размерность массива свою подставите
    var mas: [1..10] array of integer; {задаем массив типа integer из 10 элементов}
    i, maxi, mini:byte;
    max,min:integer;
    begin
    for i:=1 to 10 do {начинаем забивать массив элементами}
    begin
    write ('Введите ',i,' элемент массива);
    readln(a[i]);
    end;
    min:=a[1]; {Обнуляем показатели min и max}
    max:=a[1];
    for i:=1 to 10 do { В этом цикле находим максимальный и минимальный элементы массива и запоминаем их порядковый номер }
    begin
    if a[i]<min then begin min:=a[i]; mini:=i; end;
    if a[i]>max then max:=a[i]; maxi:=i; end;
    end;
    a[mini]:=max; { Переставляем местами максимальный и минимальный элементы}
    a[maxi]:=min;
    for i:=1 to 10 do write(a[i]:3); {Выводим массив на экран}
    end.
    Ответ отправил: Яровой Сергей Владимирович (статус: 1-й класс)
    Ответ отправлен: 24.11.2008, 18:27

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236565 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Miracle
    Здравствуйте, Гриценко Тория Юрьевна!
    В приложении программа. Она работает. Если будет что-то непонятно - пишите, я поясню.

    Приложение:

    Ответ отправила: Miracle (статус: 1-й класс)
    Ответ отправлен: 25.11.2008, 12:51

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236640 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.680
    Доброго времени суток,уважаемые эксперты!Помогите пожалуйста с задачей:
    Задана последовательность X = (x1, x2, …, x10).
    Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi<=p, где p - сумма элементов массива X, имеющих нечётные индексы. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
    X = {0.34, 99.2, 52.3, 0.5, 1, 2.23, -15.9, 10.2, 0, -3.9}.
    Заранее спасибо!
    Отправлен: 24.11.2008, 18:34
    Вопрос задала: Evela (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Шичко Игорь
    Здравствуйте, Evela!
    Предлагаю похожий вариант решения.
    Код в приложении

    Приложение:

    Ответ отправил: Шичко Игорь (статус: Практикант)
    Ответ отправлен: 24.11.2008, 21:24

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236592 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вопрос № 151.682
    Известна информация о сотрудниках некоторого предприятия:
    -фамилия,инициалы,
    -должность,
    -оклад.
    Сформируйте таблицу,записав в неё всю известную информацию о каждом сотруднике. Сформировать поле "Подоходный налог", учитывая, что он составляет 13% от оклада, и поле "К выплате".Определить количество сотрудников с минимальной зарплатой и количество с максимальной. Отсортировать таблицу по полю "должность".
    Отправлен: 24.11.2008, 18:37
    Вопрос задал: Денис (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Пупорев Юрий Борисович
    Здравствуйте, Денис!
    Решение и оформление задачи с комментариями в приложении.

    Приложение:

    Ответ отправил: Пупорев Юрий Борисович (статус: Специалист)
    Ответ отправлен: 25.11.2008, 12:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236637 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    великолепно)


    Вопрос № 151.721
    Уважаемые эксперты!!! Помогите плз с такой задачей: составить программу для построения графика функции на указанном промежутке:
    X^2*sin^2(3*x) на промежутке от 0 до 1.6. Помогите пожалуйста!!!
    Отправлен: 24.11.2008, 23:56
    Вопрос задал: Мудрик Василий Александрович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Verena
    Здравствуйте, Мудрик Василий Александрович!
    Предлагаю довольно универсальный вариант решения - в программе можно задать другую функцию и другой диапазон. Нарисовать график произвольной функции можно просто по точкам, что довольно легко делается с помощью функции PutPixel (x, y, цвет), которая закрашивает пиксель с заданным координатами заданным цветом. Проблема возникает только в масштабировании графика относительно экрана. В моём примере область, отведённая под график, может задаваться в коде, а масштабирование происходит тривиально: коэффициент масштабирования, на который домножается координата точки, вычисляется как ширина (длина) поля, делённая на длину необходимого отрезка (например, для масштабирования отрезка [x1, x2] по оси Х с шириной поля w мы выберем масштаб w/|x1-x2|, а в моём примере для более красивого вывода я беру масштаб вдвое меньший). Для этих же целей нам необходимо выбрать точку начала координат (по х мы определим её как середину задаваемой области, а по y - как точку по чентру между локальных минимума и максимума функции на данном отрезке), относительно неё мы будем производить вывод точек графика. Остальное, думаю, будет ясно из комментариев. Пример в приложении.
    PS: Это слегка видоизменённый мой пример из вопроса 128922, описание взято оттуда же.

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 25.11.2008, 00:56

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236608 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.12 от 19.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное