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

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


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

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

Выпуск № 323
от 22.03.2007, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 54
В номере:Вопросов: 5, Ответов: 8


Вопрос № 78675: Линейный алгоритм. Напишите пожалуйста программы к следующим заданиям: 1. Исследовать положительное вещественное число А, определив значения следующих величин: целую часть, дробную часть, значение арифметического квадратного корня, ...
Вопрос № 78676: Массивы. Напишите пожалуйста программы к следующим заданиям: 4. Задан массив Х[п]. К четным элементам прибавить А, а из элементов с четными номерами вычесть В. 5. Элементы массива Х[п] циклически сдвинуть на одну позицию вл...
Вопрос № 78677: Алгоритм цыклической структуры. Напишите пожалуйста программы к следующим заданиям: 7. Вычеркните из данного слова все буквы, совпадающие с его последней буквой. 8. Определить все простые числа, не превосходящие заданного N...
Вопрос № 78697: Уважаемые эксперты, не могли бы Вы помочь составить программу которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла. только пожалуйста, если можно полностью рабочую программу, а не кусочки. И...
Вопрос № 78698: Уважаемые эксперты не могли бы Вы мне составить рекурсивную программу перебора перестановок. Пожалуйста полностью всю уже рабочую программу, если можно с подробным объяснением. Спасибо....

Вопрос № 78.675
Линейный алгоритм.

Напишите пожалуйста программы к следующим заданиям:

1. Исследовать положительное вещественное число А, определив значения следующих величин: целую часть, дробную часть, значение арифметического квадратного корня, остаток от деления
на 5, символ по целой части числа. Программу составить с контролем ввода данных.

2. Упорядочить по возрастанию последовательность трех чисел х, у, z.

3. Определить наименьшее общее кратное двух натуральных чисел.
Отправлен: 17.03.2007, 08:57
Вопрос задал: Soft2 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Яна
Здравствуйте, Soft2!
1.
Целая часть A div 1
Дробная часть A - (A div 1)
Корень sqrt(A)
Остаток деления на 5 A mod 5
2. Всего -то шесть вариантов. Нужно просто посравнивать числа.
3. Перебор от наибольшего из этих чисел до их произведения с проверкой что это число делится на оба числа.

Мне кажется Вы в конспект даже не заглядывали. Стоит таки заглянуть.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 17.03.2007, 09:29

Отвечает: Gh0stik
Здравствуйте, Soft2!

1) Есть стандартные функции которые находят эти величины:
frac(t) - возвращает дробную часть числа;
int(t) - возвращает целую часть числа;
sqrt(t) - возвращает квадратный корень числа;
k mod n - остаток отделения числа k на число n (для Вашего случая k mod 5), только данная операция определена только для целых чисел.

2) Вам ответили в предыдущем ответе.

3) Определить наименьшее общее кратное двух натуральных чисел.
Вот код решения данной задачи...

var a,b,x,y:integer;
begin
write('Введите первое число a=');readln(a);
write('Введите второе число b=');readln(b);
x:=a; y:=b;
while (a<>b) do
if a>b then a:=a-b else b:=b-a;
writeln('НОД(',x,',',y,')=',a);
write('НОK(',x,',',y,')=',x*y/a:3:1);
readln;
end.


Good Luck!!!

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 17.03.2007, 15:15


Вопрос № 78.676
Массивы.

Напишите пожалуйста программы к следующим заданиям:

4. Задан массив Х[п]. К четным элементам прибавить А, а из элементов с четными номерами вычесть В.

5. Элементы массива Х[п] циклически сдвинуть на одну позицию влево.

6. Задан массив А[п,т]. Из массива А сформируйте массив D[k], развернув его по столбцам.
Отправлен: 17.03.2007, 08:58
Вопрос задал: Soft2 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Яна
Здравствуйте, Soft2!
4. for i:=1 to n do
begin
if x[i] mod 2 = 0 then x[i]=x[i]+A;
if i div 2=0 then x[i]:=x[i]-B; - Ошибка!!!
end;

Правильно так: if not odd(i) then x[i]:=x[i]-B;
-~= Gh0stik =~-
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 17.03.2007, 09:32

Отвечает: Gh0stik
Здравствуйте, Soft2!

Обращаю Ваше внимание на то что все массивы я заполняю при помощи генератора случайных чисел.

4)
const n=7;
var x:array [1..n] of integer;
i,a,b:integer;
begin
write('Input A=');read(a);
write('Input B=');read(b);
randomize;
for i:=1 to n do
begin x[i]:=random(44);write(x[i]:3); end;
for i:=1 to n do
begin
if not odd(x[i]) then x[i]:=x[i]+a;
if not odd(i) then x[i]:=x[i]-b;
end;
writeln;
for i:=1 to n do write(x[i]:3);
end.


5)
const n=7;
var x:array [1..n] of integer;
i,a:integer;
begin
randomize;
for i:=1 to n do
begin x[i]:=random(44);write(x[i]:3); end;
a:=x[1];
for i:=1 to n-1 do x[i]:=x[i+1];
x[n]:=a;
writeln;
for i:=1 to n do write(x[i]:3);
end.


6) Смотри приложение...

Good Luck!!!

Приложение:

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.

Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 17.03.2007, 15:47


Вопрос № 78.677
Алгоритм цыклической структуры.

Напишите пожалуйста программы к следующим заданиям:

7. Вычеркните из данного слова все буквы, совпадающие с его последней буквой.

8. Определить все простые числа, не превосходящие заданного N.
Распознавание простых чисел оформить в виде подпрограммы.
Отправлен: 17.03.2007, 09:00
Вопрос задал: Soft2 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Яна
Здравствуйте, Soft2!
Чтобы определить простое число или нет нужно проверить делится ли оно на все простые числа, которые меньше него.
Делаете массив и начинаете записывать в него простые числа, а при проверке очередного числа делите его на все элементы массива. Если остаток <> 0 для всех чисел - значит простое.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 17.03.2007, 09:34

Отвечает: Verena
Здравствуйте, Soft2!

В первой задаче надо запомнить в отдельную переменную последний символ строки (например, var str: string; c: char; begin ... c:= str [length (str)], где length (str) определяет длину строки), потом в цикле находить функцией pos (c, str) нужный символ и тут же его удалять функцией delete.

Во второй достаточно написать функцию проверки на простое число, открыть цикл от 2 до n-1, проверять каждое число функцией и выводить на экран простые.

function Prost (x: integer): boolean;
var i: integer;
begin
Prost:= true; {изначально значение функции true}
for i:=2 to x div 2 do {цикл от 2 до половины числа х (на большие числа х делиться в любом случае не будет)}
if x mod i=0 then begin Prost:= false; break; end; {если остаток от деления х на i равен 0, то функция получает значение false и цикл прерывается}
end;
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 6-ой класс)
Ответ отправлен: 17.03.2007, 15:29


Вопрос № 78.697
Уважаемые эксперты, не могли бы Вы помочь составить программу которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла.

только пожалуйста, если можно полностью рабочую программу, а не кусочки. И пожалуйста с подробным объяснением.
Отправлен: 17.03.2007, 13:30
Вопрос задал: Guzina olga alecsandrovna (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Guzina olga alecsandrovna!

Обход организуем с помощью 4 циклов while и дополнительных счётчиков. Если посмотрите по шагам, как работает программа, то алгоритм будет понятен.
Удачи!

Приложение:

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

Ответ отправила: Verena (статус: 6-ой класс)
Ответ отправлен: 17.03.2007, 15:12


Вопрос № 78.698
Уважаемые эксперты не могли бы Вы мне составить рекурсивную программу перебора перестановок.
Пожалуйста полностью всю уже рабочую программу, если можно с подробным объяснением.
Спасибо.
Отправлен: 17.03.2007, 13:34
Вопрос задал: Guzina olga alecsandrovna (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, Guzina olga alecsandrovna!

Вот код, с некоторыми коментариями:
program Perestanovki;
var N,i:integer;
M:array [byte] of integer;

procedure printMas; {процедура вывода массива на экран}
var i:integer;
begin
for i:=1 to N do write(M[i]);writeln;
end;

procedure Swap(var a,b:integer); {перестановка элементов местами}
var c:integer;
begin c:=a;a:=b;b:=c end;

procedure Permutation(t: integer); {сама рекурсивная процедура}
var i: integer;
begin
for i := t to n do
begin
swap(M[t],M[i]);
if t = n then printMas { выводим массив на печать }
else Permutation(t+1);
swap(M[t],M[i]);
end;
end;

begin
write('N=');readln(N);
for i:=1 to N do M[i]:=i; {создаем массив из N элементов}
Permutation(1);
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 17.03.2007, 16:27


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное