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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 486
от 12.11.2007, 18:35

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


Вопрос № 108318: Здравствуйте, помогите пожайлуста с решением задачки на языке Pascal: тема "Двумерные массивы" Задание 1: Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали. Задание 2:<b...
Вопрос № 108453: Уважаемые эксперты помогите с решением следующих задач по теме "Одномерные массивы". 1) Вычислить сумму элементов, больших заданного числа А в массиве В(N). 2) Разделить каждый элемент массива на первый элемент. Массив вывести ...

Вопрос № 108.318
Здравствуйте, помогите пожайлуста с решением задачки на языке Pascal:
тема "Двумерные массивы"
Задание 1:
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали.

Задание 2:
Различные числа. Задан числовой массив A[1:m]. Сосчитать и напечатать, сколько различных чисел в этом массиве. Например в массиве 5.7.5 различных чисел два
(5 и 7).
Отправлен: 06.11.2007, 21:22
Вопрос задал: Ильнур (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Форсман Павел Вячеславович
Здравствуйте, Xpoiuy!
Вот решение ваших задач, для первой - два варианта, первое - внутри самой матрицы, второе - транспонирование в другую матрицу.

Program T108318_1; {Инверсия матрицы в ней самой}
const
n=10; {Максимальная размерность матрицы}
type
TMatrix=array [1..n,1..n] of Word; {Тип матицы}
var
nMax:byte; {Текущая размерность}
A:TMatrix; {Матрица}
Procedure FillMatr(var A:TMatrix;nmax:byte); {Заполнение матрицы}
var
i,j:byte; {Индексы строки и столбца}
begin
Randomize; {Инициализация генератора случайных чисел}
for i:=1 to nMax do {Начало заполнение}
for j:=1 to nMax do
A[i,j]:=Random(65535); {65535 - максимальное значение типа Word}
end; {Следовательно, диапазон значений [0;65534]}
Procedure InvMatr(var A:TMatrix;nmax:byte); {Инверсия матрицы}
var
i,j:byte; {Счетчики}
T:Word; {Временная переменная}
begin
for i:=2 to nMax do {Начало цикла, для инверсии не нужно трогать диагональ,}
for j:=1 to i-1 do {и достаточно части матрицы под главной диагональю}
begin
T:=A[i,j]; {Обмен значениями}
A[i,j]:=A[j,i];
A[j,i]:=T;
end;
end;
Procedure OutMatr(var A:TMatrix;nMax:byte); {Вывод матрицы на экран}
var
i,j:byte; {Счетчики}
begin
for i:=1 to nMax do {Начало цикла}
begin
for j:=1 to nMax do
write(A[i,j],#9); {Вывод элемента, #9 - символ табуляции}
writeln; {Строка закончилась - переход на следующую}
end;
end;
begin
write('nMax='); {Ввод реальной максимальной размерности}
readln(nMax);
FillMatr(A,nMax); {Заполнение матрицы}
writeln('A:');
OutMatr(A,nMax); {Вывод исходной матрицы}
InvMatr(A,nMax); {Инверсия матрицы}
writeln('A'':');
OutMatr(A,nMax); {Вывод результата}
readln; {Ожидание нажатия ENTER}
end.

-------------------------------------------------------

Program T108318_1_; {Инверсия матрицы в другую матрицу}
const
n=10; {Максимальная размерность матрицы}
type
TMatrix=array [1..n,1..n] of Word; {Тип матицы}
var
nMax:byte; {Текущая размерность}
A,B:TMatrix; {Матрица}
Procedure FillMatr(var A:TMatrix;nmax:byte); {Заполнение матрицы}
var
i,j:byte; {Индексы строки и столбца}
begin
Randomize; {Инициализация генератора случайных чисел}
for i:=1 to nMax do {Начало заполнение}
for j:=1 to nMax do
A[i,j]:=Random(65535); {65535 - максимальное значение типа Word}
end; {Следовательно, диапазон значений [0;65534]}
Procedure InvMatr(var A:TMatrix;nmax:byte); {Инверсия матрицы}
var
i,j:byte; {Счетчики}
T:Word; {Временная переменная}
begin
for i:=2 to nMax do {Начало цикла, для инверсии не нужно трогать диагональ,}
for j:=1 to i-1 do {и достаточно части матрицы под главной диагональю}
begin
T:=A[i,j]; {Обмен значениями}
A[i,j]:=A[j,i];
A[j,i]:=T;
end;
end;
Procedure OutMatr(var A:TMatrix;nMax:byte); {Вывод матрицы на экран}
var
i,j:byte; {Счетчики}
begin
for i:=1 to nMax do {Начало цикла}
begin
for j:=1 to nMax do
write(A[i,j],#9); {Вывод элемента, #9 - символ табуляции}
writeln; {Строка закончилась - переход на следующую}
end;
end;
begin
write('nMax='); {Ввод реальной максимальной размерности}
readln(nMax);
FillMatr(A,nMax); {Заполнение матрицы}
writeln('A:');
OutMatr(A,nMax); {Вывод исходной матрицы}
B:=A;
InvMatr(B,nMax); {Инверсия матрицы}
writeln('B=A'':');
OutMatr(B,nMax); {Вывод результата}
readln; {Ожидание нажатия ENTER}
end.

------------------------------------------------------

Program T108318_2; {Подсчет уникальных значений}
const
m=20; {Максимальное количество элементов в массиве}
type
TArray=array [1..m] of byte; {Описание массива}
TMask=array [1..m] of boolean; {Маска для определения совпадений}
var
A:TArray; {Массив}
i,mMax,CountUniq:byte; {Сччетчик для ввода, реальная размерность, результат}
Function CalcUniq(var A:TArray;mMax:byte):byte;{Подсчет уникальных}
var
Mask:TMask; {Маска}
i,j:byte; {Счетчики}
Count:byte; {Возвращаемый результат}
begin
for i:=1 to mMax do {Инициализация маски - все уникальные}
Mask[i]:=True;
Count:=0; {Инициализация счетчика}
for i:=1 to mMax do {Начало перебора}
if Mask[i] then {Число еще не встречалось???}
begin
Mask[i]:=False; {Снимаем флаг "уникальности"}
inc(Count); {Увеличиваем счетчик}
for j:=i+1 to mMax do {Смотрим подобные}
if A[i]=A[j] then {У подобных тоже сбрасываем флаги}
Mask[j]:=False;
end;
CalcUniq:=Count; {Возврат значения}
end;
begin
write('mMax='); {Запрос и ввод реального размера вектора}
readln(mMax);
for i:=1 to mMax do {Ввод значения вектора}
begin
write('A[',i,']=');
readln(A[i]);
end;
CountUniq:=CalcUniq(A,mMax); {Подсчет уникальных значений}
writeln('Uniq=',CountUniq); {Вывод результата}
readln; {Ожидание реакции пользователя}
end.
Павел Форсман.

---------
Научить нельзя, но можно попробовать научиться!!!
Ответ отправил: Форсман Павел Вячеславович (статус: 2-ой класс)
Ответ отправлен: 07.11.2007, 03:10
Оценка за ответ: 5


Вопрос № 108.453
Уважаемые эксперты помогите с решением следующих задач по теме "Одномерные массивы".

1) Вычислить сумму элементов, больших заданного числа А в массиве В(N).
2) Разделить каждый элемент массива на первый элемент. Массив вывести на экран.
3)Найти и напечатать среднее арифметическое значение положительных элементов заданного массива.
4) Вычислить произведение
а)последних пяти элементов одномерного массива
б)первых пяти элементов массива.
5) Для заданного массива найти и напечатать элемент, значение которого максимально.
6)Для заданного масива определить и напечатать сумму элеметов с четными номерами.
7)Сформировать и напечатать массив А, каждый элемент которого представляет собой целую часть соответствующего элемента массива Х. Результат вывести на экран.
8)найти номера нулевых элементов массива.

Заранее всем большое спасибо!!!
Отправлен: 07.11.2007, 18:22
Вопрос задала: Lifestyle (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Артём1983
Здравствуйте, Lifestyle!
Смотрите коды программ в приложении.

Приложение:

---------
Программирование - дело Путное!

Ответ отправил: Артём1983 (статус: 6-ой класс)
Ответ отправлен: 07.11.2007, 22:03
Оценка за ответ: 5
Комментарий оценки:
Я Вам очень благодарна!!! Вы мне очень помогли!!! Задачи решены все правильны))) И еще раз Вам большое спасибо, я не знаю, чтоб я без вас делала!!!


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное