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

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Профессор
Рейтинг: 3644
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2668
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2279
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1155
Дата выхода:31.12.2010, 11:30
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:187 / 175
Вопросов / ответов:4 / 6

Вопрос № 181607: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Дана действительная квадратная матрица порядка 2n. Получить нов...


Вопрос № 181608: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Дан файл f , компоненты которого являются целыми числами. Записать в файл g все четные числа файла f , а в файл h – все нечетные. Порядок следования чисел сохра...
Вопрос № 181609: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: На зовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например, 4884, 393, 1). Найти все меньшие 100 числа – палин...
Вопрос № 181610: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Если в тексте нет символа *, то оставить этот текст без изменения, иначе каждую из малых латинских букв, предшествующих первому вхождению символа *, заменить на ...

Вопрос № 181607:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:

Дана действительная квадратная матрица порядка 2n.
Получить новую матрицу, переставляя ее блоки размера nXn:

Отправлен: 25.12.2010, 20:31
Вопрос задал: Анна
Всего ответов: 1
Страница вопроса »


Отвечает Andrew Kovalchuk (Профессионал) :
Здравствуйте, Анна!
Ниже приводится решение на TP7.0
Код:
{
Дана действительная квадратная матрица порядка 2n.
Получить новую матрицу, переставляя ее блоки размера nXn:
}
uses
crt;
const
N = 3;
var
ar: array[1..2*N, 1..2*N] of real;
i, j, k: byte;
tmp: real;
begin
clrscr;
randomize;
writeln('Source array (', 2*N, 'x', 2*N, '):');
for i:=1 to 2*N do begin
for j:=1 to 2*N do begin
ar[i, j] := 10*i+j; {100*random();}
write(ar[i, j]:8:2);
end;
writeln;
end;

for i:=1 to N do begin
for j:=1 to 2*N do begin
tmp := ar[i, j];
if (j > N) then begin
k := j - N;
end else begin
k := N + j;
end;
ar[i, j] := ar[N+i, k];
ar[N+i, k] := tmp;
end;
end;

writeln;
writeln('Result array:');
for i:=1 to 2*N do begin
for j:=1 to 2*N do begin
write(ar[i, j]:8:2);
end;
writeln;
end;
writeln;
writeln('Done. Press any key...');
readkey;
end.

-----
Временная неудача лучше временной удачи

Ответ отправил: Andrew Kovalchuk (Профессионал)
Ответ отправлен: 25.12.2010, 23:39
Номер ответа: 265078
Украина, Киев

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



    Вопрос № 181608:

    Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
    Дан файл f , компоненты которого являются целыми
    числами. Записать в файл g все четные числа файла f , а в файл h –
    все нечетные. Порядок следования чисел сохраняется.

    Отправлен: 25.12.2010, 20:45
    Вопрос задал: Анна
    Всего ответов: 1
    Страница вопроса »


    Отвечает Юдин Евгений Сергеевич (6-й класс) :
    Здравствуйте, Анна!

    Вот код программы! Все комментарии внесены!

    Желаю вам разобраться с этой задачей! ABC - pascal

    Код:
    program p181608;
    var f,g,h:file of integer;{инициализация файлов целых чисел(типизированных)}
    a:integer;{переменная для чисел}
    begin
    assign(f,'input_f');{связываем переменную с файлом на диске}
    rewrite(f);{открываем для записи}
    assign(g,'output_g');
    rewrite(g);
    assign(h,'output_h');
    rewrite(h);
    writeln('Please enter components of file f ');
    repeat {Если хотим, то правим на любой другой конец ввода}
    readln(a);
    write(f,a);{записываем в файл}
    until a=0;{если компонент 0 - выходим из цикла ввода компонентов}
    reset(f);{открываем исходный файл для чтения}
    while not eof(f) do {пока не конец файла f}
    begin
    read(f,a);{читаем числа}
    if odd(a)then
    write(h,a){если нечетное число, записываем в файл h}
    else
    write(g,a);{если четное, записываем в файл g}
    end;
    close(f);
    {Проверка результата по файлам h и g}
    reset(g);
    writeln('File g:');
    while not eof(g) do
    begin
    read(g,a);
    write(a,' ');
    end;
    close(g);{закрываем фаил}
    {---------------------}
    writeln;
    reset(h);
    writeln('File h:');
    while not eof(h) do
    begin
    read(h,a);
    write(a,' ');
    end;
    close(h);
    readln
    end.


    P.s.:ввод идет в столбик (оператор readln) - но в примерах я опишу в строку для компактности!!!
    Будьте внимательны!
    Пример раб оты программ:
    Код:
    input_f: 1 2 3 4 5 6 7 8 9 0
    output_g: 2 4 6 8 0
    output_h: 1 3 5 7

    Удачи!

    Ответ отправил: Юдин Евгений Сергеевич (6-й класс)
    Ответ отправлен: 26.12.2010, 09:45
    Номер ответа: 265086
    Тел.: 79205703452
    ICQ # 1089047
    Mail.ru-агент: darkpalladin_zadira@mail.ru

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


  • Вопрос № 181609:

    Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
    На зовем натуральное число палиндромом, если его запись
    читается одинаково с начала и с конца (как, например, 4884, 393, 1).

    Найти все меньшие 100 числа – палиндромы, которые при
    возведении в квадрат также дают палиндромы

    Отправлен: 25.12.2010, 20:52
    Вопрос задал: Анна
    Всего ответов: 2
    Страница вопроса »


    Отвечает Абельхарисов Руслан/Marked One (Профессионал) :
    Здравствуйте, Анна!
    Вот код программы.
    Код:
    function isPal(n: integer): boolean;
    var
    i, t: integer;

    begin
    t := n;
    i := 0;
    while t > 0 do
    begin
    i := i * 10 + t mod 10;
    t := t div 10;
    end;
    if i = n then
    isPal := true
    else
    isPal := false;
    end;

    var
    i, t: integer;

    begin
    for i := 1 to 99 do
    begin
    if isPal(i) and (isPal(i*i)) then
    write(i, ' ');
    end;
    readln;
    end.

    Удачи!!!

    Ответ отправил: Абельхарисов Руслан/Marked One (Профессионал)
    Ответ отправлен: 25.12.2010, 21:59
    Номер ответа: 265073
    Россия
    ICQ # 436075880

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


  • Отвечает Борисыч (Профессор) :
    Здравствуйте, Анна! По "рабоче-крестьянски".
    Код:
    { Назовем натуральное число палиндромом, если его запись 
    читается одинаково с начала и с конца (как, например, 4884, 393, 1).
    Найти все меньшие 100 числа – палиндромы, которые при
    возведении в квадрат также дают палиндромы }

    program p181609;
    var
    i: integer; { число }
    i2: integer; { квадрат числа }

    begin
    i:= 1;
    i2:= i*i;
    while i2 < 10 do { однозначное число, однозначный квадрат }
    begin
    writeln(i:4, i2:4);
    i:= i+1;
    i2:= i*i;
    end;

    while i < 10 do { однозначное число, двузначный квадрат }
    begin
    if i2 mod 1 0 = i2 div 10 then
    writeln(i:4, i2:4);
    i:= i+1;
    i2:= i*i;
    end;

    i:= 11;
    i2:= i*i;
    while i2 < 1000 do { двузначное число, трехзначный квадрат }
    begin
    if i2 div 100 = i2 mod 10 then
    writeln(i:4, i2:4);
    i:= i+11;
    i2:= i*i;
    end;

    while i < 100 do { двузначное число, четырехзначный квадрат }
    begin
    if i2 div 100 = i2 mod 100 then
    writeln(i:4, i2:4);
    i:= i+11;
    i2:= i*i;
    end;
    end.

    Выдача
    Код:

    1 1
    2 4
    3 9
    11 121
    22 484

    Если требуются разъяснения - за давайте вопросы в мини-форуме.

    Ответ отправил: Борисыч (Профессор)
    Ответ отправлен: 26.12.2010, 17:17
    Номер ответа: 265107
    Россия, Ковров
    Тел.: +79107793141
    Организация: КГТА, УЦ "Альфа"

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


  • Вопрос № 181610:

    Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
    Если в тексте нет символа *, то оставить этот текст без
    изменения, иначе каждую из малых латинских букв,
    предшествующих первому вхождению символа *, заменить на
    цифру 3.

    Отправлен: 25.12.2010, 20:53
    Вопрос задал: Анна
    Всего ответов: 2
    Страница вопроса »


    Отвечает Борисыч (Профессор) :
    Здравствуйте, Анна! ABC-Pascal.
    Код:
    program p181610;
    { Если в тексте нет символа *, то оставить этот текст без
    изменения, иначе каждую из малых латинских букв,
    предшествующих первому вхождению символа *, заменить на
    цифру 3. }
    { Допущения. Будем считать текстом строку, так как иное не сказано }
    var
    s: string; { Строка текста }
    i: integer; { Счетчик, текущая позиция символа в строке }
    len: integer; { Длина строки }
    begin
    { Читаем строку }
    readln(s);
    i:= 1;
    len := length(s);

    { Проходим до конца строки или до первого вхождения символа '*' }
    while (s[i]<>'*') and (i<=len) do
    i:= i+1;
    { Если символ найден, производим замены }
    if (i<=len) then { позиция за первым вхождением символа '*' }
    begin
    i:= i-1;
    while (i>=1) do
    { справа налево, чтоб не вводить лишнюю переменную }
    begin
    if s[i] in ['a'..'z'] then { каждую из малых латинских букв }
    s[i] := '3';
    i:= i-1;
    end;
    end;

    { Печатаем строку }
    writeln(s);
    end.
    Примеры работы
    Код:
    qwerty*qwety*qw*
    333333*qwety*qw*
    Код:
    123123цукйкйtyutryutru
    123123цукйкйtyutryutru
    Код:
    *
    *

    Ответ отправил: Борисыч (Профессор)
    Ответ отправлен: 25.12.2010, 21:41
    Номер ответа: 265072
    Россия, Ковров
    Тел.: +79107793141
    Организация: КГТА, УЦ "Альфа"

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


  • Отвечает Юдин Евгений Сергеевич (6-й класс) :
    Здравствуйте, Анна!

    Вот немного видоизмененная программа эксперта Борисыч!

    Все предельно ясно - коллега оставил замечательные комментарии.
    Оформляю ответ с немного измененными строками!

    Выполнил также на ABC pascal
    Код:
    program p181610;
    { Модернизированная версия программы }
    var
    s: string; { Строка }
    sm:string[1]; {Символ}
    i: integer;
    len: integer; { Длина строки }
    begin
    write('Press input str ');
    readln(s);
    write('Press symbol ');
    readln(sm);
    i:= 1;
    len := length(s);
    i:=Pos(sm,s);
    if (i<=len) then {идем по строке с позиции, предшествующей первому вхождению символа sm}
    begin
    i:= i-1;
    while (i>=1) do
    begin
    if s[i] in ['a'..'z'] then
    s[i] := '3';
    i:= i-1;
    end;
    end;
    writeln(s); {Вывод результата на экран}
    end.


    Удачи разобраться!

    Ответ отправил: Юдин Евгений Сергеевич (6-й класс)
    Ответ отправлен: 26.12.2010, 09:06
    Номер ответа: 265084
    Тел.: 79205703452
    ICQ # 1089047
    Mail.ru-агент: darkpalladin_zadira@mail.ru

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


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

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

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

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

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

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

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


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное