|
лабы по инфе
| |
FedinMA | Дата: Воскресенье, 23.11.2008, 21:11 | Сообщение # 61 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Поиск отрицательных элементов матрицы, лежащих ниже главной диагонали, надо осуществлять следующим образом for i:=1 to n do for j:=1 to i-1 do // далее аналогично или for i:=2 to n do for j:=1 to i-1 do // далее аналогично Поиск среднего арифметического всех элементов главной диагонали (=след матрицы/n) sum_diag:=0; for i:=1 to n do for j:=1 to n do if i=j then sum_diag:=sum_diag+a[i,j]; sr_ar_diag:=sum_diag/n; Fanstar77, не сразу сообразил, но у тебя тоже все верно.
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
Fanstar77 | Дата: Суббота, 29.11.2008, 21:28 | Сообщение # 62 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| а Вот и программка Добавлено (29.11.2008, 21:28) --------------------------------------------- http://narod.ru/disk/4076698000/PROGRAMM.EXE.html Добавлено (29.11.2008, 21:28) --------------------------------------------- Если файл не начал скачиваться или вам надоело ждать, нажмите на ссылку: Чтобы скачать файл, нажмите на ссылку: http://narod.ru/disk/4076705000/PROGRAMM.PAS.html
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Суббота, 29.11.2008, 22:56 | Сообщение # 63 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Quote (Fanstar77) а Вот и программка Fanstar77, надо делать какие-то пояснения, чтобы всем понятно было о чем вообще речь. Сделаю это сам на сей раз: Дана матрица размером 3х7. Нужно найти номера таких столбцов данной прямоугольной матрицы, для которых разность элементов первой и второй строк не равна элементу третьей строки, а также их количество. PS: Задача решена верно.
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
Fanstar77 | Дата: Воскресенье, 28.12.2008, 16:27 | Сообщение # 64 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| ЗАДАНИЕ Даны два целочисленных массива: С(n) И P(m). если максимальный элемент С больше максимального элемента P, то сформировать новую последовательность, включающую элементы обоих массивов, значения которых делятся без остатка на заданное число, иначе-выдать сообщение.
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Воскресенье, 28.12.2008, 17:48 | Сообщение # 65 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Quote (Fanstar77) сформировать новую последовательность, включающую элементы обоих массивов, значения которых делятся без остатка на заданное число А про способ формирования этой новой последовательности что-нибудь известно? Допустим, что k элементов массива C(n) и s элементов массива P(m) удовлетворили условию. Что делать дальше? Каким именно образом формировать новый массив? Например, можно так: D(k+s)={c[1], c[9],...,c[85], p[1], p[9],..p[91]} или так D(k+s)={p[1], p[9],..p[91], c[1], c[9],...,c[85]}. Желательно узнать это у преподавателя.
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
Fanstar77 | Дата: Воскресенье, 28.12.2008, 17:52 | Сообщение # 66 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| а ПОЛНОСТЬЮ КАК ВЫГЛЯДИТ ПРОГРАММА И БЛОК -СХЕМА А ТО МНЕ ЗАВТРА АНАЛОГИЧНУЮ ПИСАТЬ ПРИДЕТСЯ!
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Воскресенье, 28.12.2008, 18:11 | Сообщение # 67 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Положим, что новую последовательность необходимо формировать по следующей схеме. Пусть k элементов массива C(n) и s элементов массива P(m) удовлетворили условию. Тогда новая последовательность D(k+s)={d[i]}, i=1,2,..., k+s, где d[i]=c[r], i=1,2,...,k, причем c[r] - элементы массива C(n), удовлетворившие условию и d[i]=p[t], i=k+1,k+2,...,k+s, причем p[t] - элементы массива P(m), удовлетворившие условию. Листинг: Program mass; const n=20; m=40; var C: array[1..n] of integer; P: array[1..m] of integer; i,s: integer; z: real; // заданное число begin // Ввод массивов C и P с клавиатуры // Поиск максимального элемента массива C max_C:=c[1]; for i:=2 to n do if c[i]>max_C then max_C:=c[i]; // Поиск максимального элемента массива P max_P:=p[1]; for i:=2 to m do if p[i]>max_P then max_P:=p[i]; if max_C>max_P then begin s:=0; // счетчик для элементов новой последовательности for i:=1 to n do if c[i]/z=round(c[i]/z) then begin s:=s+1; d[s]:=c[i]; end; for i:=1 to m do if p[i]/z=round(p[i]/z) then begin s:=s+1; d[s]:=p[i]; end; // Вывод сформированной последовательности D end else writeln('Условие, необходимое для формирования нового массива, не выполняется.') end.
Учиться надо так, чтобы это было тебе в радость.
Сообщение отредактировал FedinMA - Воскресенье, 28.12.2008, 18:12 |
|
| |
FedinMA | Дата: Воскресенье, 28.12.2008, 18:44 | Сообщение # 68 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Блок-схема к этой задаче
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
Fanstar77 | Дата: Среда, 07.01.2009, 18:56 | Сообщение # 69 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| http://10.dl2c-narod.yandex.ru/disk....222.rar проверяйДобавлено (07.01.2009, 18:56) --------------------------------------------- Задача 1 В одномерном массиве Р размера n вычислить наименьшее произведение двух соседних элементов массива и его номер. Задача 2 В одномерном массиве Р размера n определить полусумму минимального и максимального элемента за вычетом среднего арифметического всех элементов
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Среда, 07.01.2009, 19:43 | Сообщение # 70 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Quote (Fanstar77) http://10.dl2c-narod.yandex.ru/disk....222.rar На будущее: код программы и блок-схему (по возможности) надо выкладывать также и непосредственно здесь+не забывать про задание и элементарную вежливость задание:определить разность наибольшего и наименьшего элементов в массиве А. program massiv; var a:array[1..20] of real; mina,maxa,raznica:real; n,i:integer; begin write('Enter n (n<=20):'); readln(n); for i:=1 to n do begin write('A[',i,']='); readln(a[i]); end; mina:=a[1]; maxa:=a[1]; for i:=2 to n do begin if a[i]<mina then mina:=a[i]; if a[i]<maxa then maxa:=a[i]; end; raznica:=maxa-mina; writeln; writeln('raznica='); readln; end. По скомпилированной программе: 1. Когда ищем максимальный элемент массива А, знак неравенства нужно заменить на обратный: if a[i]>maxa then maxa:=a[i]; 2. Значение разницы рассчитывается, но не выводится на экран. Надо: writeln(raznica);
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
FedinMA | Дата: Среда, 07.01.2009, 19:57 | Сообщение # 71 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| После внесения соответствующих исправлений программа отлично работает.
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
Fanstar77 | Дата: Среда, 07.01.2009, 20:00 | Сообщение # 72 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| ты можешь написать блок -схемы и программы к этим двум задачам?
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Среда, 07.01.2009, 20:08 | Сообщение # 73 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Quote (Fanstar77) Задача 2 В одномерном массиве Р размера n определить полусумму минимального и максимального элемента за вычетом среднего арифметического всех элементов Начнем со второй задачи. Берем первую часть кода предыдущей задачи: program massiv; var a:array[1..20] of real; mina,maxa,raznica,sum:real; n,i:integer; begin write('Enter n (n<=20):'); readln(n); for i:=1 to n do begin write('A[',i,']='); readln(a[i]); end; mina:=a[1]; maxa:=a[1]; // С этого места начинаются некоторые изменения // Поскольку в том же цикле, где мы ищем макс. и мин. элементы, мы будем также искать и сумму всех элементов (чтобы потом найти их среднее арифметическое значение), до цикла необходимо задать начальное значение этой суммы. Если цикл начинается с i=2 (оставим без изменений, хотя можно и с i=1), начальное значение суммы sum:=a[1]; // Вопрос для проверки понимания: чему равно начальное значение суммы в случае начала цикла с i=1 и повлият ли это на поиск макс. и мин. элементов? for i:=2 to n do begin if a[i]<mina then mina:=a[i]; if a[i]>maxa then maxa:=a[i]; sum:=sum+a[i]; // наращиваем сумму end; raznica:=(maxa+mina)/2-sum/n; writeln(raznica); readln; end.
Учиться надо так, чтобы это было тебе в радость.
Сообщение отредактировал FedinMA - Среда, 07.01.2009, 20:09 |
|
| |
Fanstar77 | Дата: Среда, 07.01.2009, 20:12 | Сообщение # 74 |
Абитуриент
Группа: Проверенные
Сообщений: 36
Статус: Offline
| у меня получалось аналогичное такое же возможно где то опять в знакох напутал! Добавлено (07.01.2009, 20:12) --------------------------------------------- начальное значение равно НУЛЮ и на поиск наверно не повлияет!
Давай те ка мы поучимся!
|
|
| |
FedinMA | Дата: Среда, 07.01.2009, 20:20 | Сообщение # 75 |
Асс. каф. ФЭМАЭК
Группа: Модераторы
Сообщений: 227
Статус: Offline
| Для тестирования программы воспользуйся следующим математическим фактом: если имеется арифметическая последовательность с четным количеством элементов, то полусумма макс. и мин. значений за вычетом среднего арифметического всех ее элементов равна 0. К примеру задай такую последовательность: 1, 2, 3, ..., 10 или 1,2,3, ..., 100 или 2,3,4,5,6,7 и т.д. Для всех последовательностей результат будет равен 0.
Учиться надо так, чтобы это было тебе в радость.
|
|
| |
| |