Другие языки программирования и технологии
Помогите написать программу для турбо паскаля
"Определить, сколько элементов побочной диагонали являются простыми числами, а также определить, что для элементов побочной диагонали больше - сумма простых чисел или сумма остальных чисел .Найти суммы чётных чисел над главной диагональю матрицы и под неё. Определить, какая сумма больше. "
Доброго времени суток.
Я бы вам посоветовал начать с функции, проверяющей простое число или нет передано ей в качестве аргумента. Делается это достаточно элементарно, если вспомнить определение простых чисел.
function IsPerfect(p: Integer): Boolean;
var
i, k : Integer;
begin
IsPerfect := True; {предположим, что простое}
if (p = 0) or (p = 1) then Simple := False; {ноль и единица не простые}
k := Trunc(Sqrt(p)); {верхняя граница диапазона поиска делителей}
for i:=2 to k do {от двух до верхней границы ищем делитель числа p}
if p mod i = 0 then begin
IsPerfect := False; {если нашелся, значит не простое}
Break;
end;
end;
Дальше можно начинать разбираться с побочной диагональю. Для этого нужно помнить, что элементы, чьи индексы удовлетворяют условию
i + j = n + 1
лежат на побочной диагонали. Следовательно, индексом столбца будет
j = n + 1 - i
В цикле for i:=1 to n берете элементы A[i, n+1-i] который и будет принадлежать побочной диагонали.
С главной диагональю тоже все просто. Для элементов, лежащих на ней справедливо i = j, т. е. , если при сканировании матрицы j < i, то это будет элемент под главной диагональю. Если же i > j, то над ней.
Просканировать матрицу и найти требуемые суммы попроуйте самостоятельно, иначе это будет уже не помощь.
Удачи!
Я бы вам посоветовал начать с функции, проверяющей простое число или нет передано ей в качестве аргумента. Делается это достаточно элементарно, если вспомнить определение простых чисел.
function IsPerfect(p: Integer): Boolean;
var
i, k : Integer;
begin
IsPerfect := True; {предположим, что простое}
if (p = 0) or (p = 1) then Simple := False; {ноль и единица не простые}
k := Trunc(Sqrt(p)); {верхняя граница диапазона поиска делителей}
for i:=2 to k do {от двух до верхней границы ищем делитель числа p}
if p mod i = 0 then begin
IsPerfect := False; {если нашелся, значит не простое}
Break;
end;
end;
Дальше можно начинать разбираться с побочной диагональю. Для этого нужно помнить, что элементы, чьи индексы удовлетворяют условию
i + j = n + 1
лежат на побочной диагонали. Следовательно, индексом столбца будет
j = n + 1 - i
В цикле for i:=1 to n берете элементы A[i, n+1-i] который и будет принадлежать побочной диагонали.
С главной диагональю тоже все просто. Для элементов, лежащих на ней справедливо i = j, т. е. , если при сканировании матрицы j < i, то это будет элемент под главной диагональю. Если же i > j, то над ней.
Просканировать матрицу и найти требуемые суммы попроуйте самостоятельно, иначе это будет уже не помощь.
Удачи!
xakepy.mybb.ru/viewforum.php?id=30
Похожие вопросы
- Помогите написать программу в Турбо паскале.
- помогите написать программу в Турбо Паскале, Шифр цезаря,с сдвигом на три шага!!!!
- Помогите написать программу в турбо паскале (по возможности и блок-схему)
- Помогите составить программу на Турбо Паскале! ПЛИЗЗ!!
- Помогите пожалуйста! помогите написать программу на языке паскаль
- Помогите написать программу! Турбо Паскаль 7.0
- Помогите решить задачу на Турбо паскале
- Помогите где ошибка в программе на турбо паскале?
- Мне завтра рассказывать программы по турбо паскаль,помогите разьяснить задачи по каждой строчке
- Помогите сделать анимацию в программе в турбо Паскаль