Вопрос № 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 (Россия) |
Еще номера »
Ответ поддержали (отметили как правильный):
1 чел.
Вопрос № 181608:
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Дан файл f , компоненты которого являются целыми числами. Записать в файл g все четные числа файла f , а в файл h – все нечетные. Порядок следования чисел сохраняется.
Отправлен: 25.12.2010, 20:45
Вопрос задал: Анна
Всего ответов: 1 Страница вопроса »
Желаю вам разобраться с этой задачей! 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) - но в примерах я опишу в строку для компактности!!! Будьте внимательны! Пример раб
оты программ:
Ответ отправил: Юдин Евгений Сергеевич (6-й класс)
Ответ отправлен: 26.12.2010, 09:45
Номер ответа: 265086 Тел.: 79205703452 ICQ # 1089047 Mail.ru-агент: darkpalladin_zadira@mail.ru
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 265086
на номер 1151 (Россия) |
Еще номера »
Вопрос № 181609:
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: На зовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например, 4884, 393, 1).
Найти все меньшие 100 числа – палиндромы, которые при возведении в квадрат также дают палиндромы
Отправлен: 25.12.2010, 20:52
Вопрос задал: Анна
Всего ответов: 2 Страница вопроса »
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 (Россия) |
Еще номера »
Отвечает Борисыч (Профессор) :
Здравствуйте, Анна! По "рабоче-крестьянски".
Код:
{ Назовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например, 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 (Россия) |
Еще номера »
Вопрос № 181610:
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Если в тексте нет символа *, то оставить этот текст без изменения, иначе каждую из малых латинских букв, предшествующих первому вхождению символа *, заменить на цифру 3.
Отправлен: 25.12.2010, 20:53
Вопрос задал: Анна
Всего ответов: 2 Страница вопроса »
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 (Россия) |
Еще номера »
Вот немного видоизмененная программа эксперта Борисыч!
Все предельно ясно - коллега оставил замечательные комментарии. Оформляю ответ с немного измененными строками!
Выполнил также на 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 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.