Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.05.2008, 11:28   #1
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию Программирование на алгоритмическом языке Turbo Pascal

В данной теме представлены задачи и их (надеюсь ) решения на алгоритмическом языке Turbo Pascal :



Лабораторная работа №1: "Программирование операции обработки двумерных массивов"
Задача: Дана матрица А[M,N]. Включить вектор С(М) в качестве главной диагонали матрицы.


Program Lab5;
Uses crt;
Const M=5;
N=5;
Var A: array[1..M,1..N] of real;
C: array[1..M] of real;
P,I:1..M;
Q,J:1..N;
Begin
Clrscr;
Write('BBedite razmernost matricy ne bolee 5*5: ');
Readln(P,Q);
Writeln('BBedite elementy matricy:');
For I:=1 to P do
For J:=1 to Q do
Begin
Write ('A[',I: 1,',',J: 1,']=');
Readln(A[I,J]);
End;
Writeln('Kontrolnyi Byvod matricy: ');
For I:=1 to P do
Begin
For J:=1 to Q do Write (A[I,J]:4:2,'':3);
Writeln;
End;
A[I,J]:=C[M];
For I:=1 to P do
For J:=1 to Q do
Begin if I=J then
Write(A[I,J],'');
End;
End.

Вот вся моя лаба, но что-то не идёт. В чём здесь моя ошибка(не выводит контрольный вывод матрицы, а затем всё обрывается).


Лабораторная работа №2: "Программирование ветвящихся алгоритмов"
Задача:С клавиатуры вводится последовательность из N вещественных чисел. Вычислить среднее арифметическое введённых чисел, а также определить максимальное из них. Ввод чисел и их обработку организовать в цикле, но операторы цикла при этом не использовать.

Последний раз редактировалось Дима82; 09.05.2008 в 20:31.
Дима82 вне форума
Старый 09.05.2008, 12:23   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Цитата:
Включить вектор С(М) в качестве главной диагонали матрицы
Значит надо ввести этот вектор, а затем подставить в главную диагональ
Код:
Program Lab5;
Uses crt;
Const M=5;
N=5;
Var
  A: array[1..M,1..N] of real;
  C: array[1..M] of real;
  P,I:1..M;
  Q,J:1..N;
Begin
  Clrscr;
  Write('BBedite razmernost matricy ne bolee 5*5: ');
  Readln(P,Q);
  Writeln('BBedite elementy matricy:');
  For I:=1 to P do begin
    For J:=1 to Q do
    Begin
      Write ('A[',I: 1,',',J: 1,']=');
      Readln(A[I,J]);
    End;
    write ('C[',i,']=');
    readln(c[i]);
  end;
  Writeln('Kontrolnyi Byvod matricy: ');
  For I:=1 to P do
  Begin
    For J:=1 to Q do Write (A[I,J]:4:2,'':3);
    Writeln;
  End;
  {A[I,J]:=C[M];}
  For I:=1 to P do
  For J:=1 to Q do
  if I=J then
    a[i,j]:=c[i];
  writeln;
  For I:=1 to P do
  Begin
    For J:=1 to Q do Write (A[I,J]:4:2,'':3);
    Writeln;
  End;
  readln
End.
eoln вне форума
Старый 09.05.2008, 12:45   #3
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Что-то не то получается: оно только обнуляет главную диагональ и можно только набрать вектор-строку.
Дима82 вне форума
Старый 09.05.2008, 12:54   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Всё работает! Скопирую код полностью.
Вот пример как должно быть
Изображения
Тип файла: jpg 0.jpg (18.0 Кб, 147 просмотров)
eoln вне форума
Старый 09.05.2008, 12:54   #5
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

ОЙ, извиняюсь сам что-то ступил... (неправильно переписал)...

Последний раз редактировалось Дима82; 09.05.2008 в 15:06.
Дима82 вне форума
Старый 09.05.2008, 12:58   #6
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

А можно сделать так, чтобы не самому вводить С(М), а чтобы она автоматичеки вводилась (любые произвольные числа от 1..М)
Дима82 вне форума
Старый 09.05.2008, 13:02   #7
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Господа, вы меня извините, но это:
Код:
  For I:=1 to P do
  For J:=1 to Q do
  if I=J then
    a[i,j]:=c[i];
- ЧТО-ТО!

Уж не лучше ли вот так:
Код:
if M < N then j := M else j := N;
for i := 1 to j do A[i, i] := C[i];
B_N вне форума
Старый 09.05.2008, 13:07   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Поскольку элементы вектора числа вещественные, то так:
c[i]:=random(m-1)+random+1;
А вообще прения непонятны, поскольку диагонали бывают только у квадратных матриц, все остальное блуд, как про четность вещественных чисел, которую очень любят обсуждать на форуме.
А правильно заполнять главную диагональ конечно как у B_N, только никакие условия не нужны, просто
for i:=1 to n do
a[i,i]:=c[i];

Последний раз редактировалось puporev; 09.05.2008 в 13:14.
puporev вне форума
Старый 09.05.2008, 13:26   #9
Дима82
Форумчанин
 
Аватар для Дима82
 
Регистрация: 09.05.2008
Сообщений: 108
По умолчанию

Цитата:
c[i]:=random(m-1)+random+1;
А куда именно это вставить...

А то что-то у меня главная диагональ обнуляется...

Вроде, это даже неверная формула...

Последний раз редактировалось Дима82; 09.05.2008 в 13:53.
Дима82 вне форума
Старый 09.05.2008, 13:56   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если в Ваш код то так:
Код:
Writeln('Kontrolnyi Byvod matricy: ');
For I:=1 to P do
Begin
For J:=1 to Q do Write (A[I,J]:5:2);
Writeln;
End;
//вставка
for i:=1 to p do
     begin
       c[i]:=random(m-1)+random+1;
       a[i,i]:=c[i];
     end;
writeln('Rezultat:');
For I:=1 to P do
    begin
      For J:=1 to Q do
     Write(A[I,J]:5:2);
     writeln;
   End;
readln
End.
puporev вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула на языке Pascal ViNcHeStEr Помощь студентам 9 03.07.2008 14:32
Реализация модели эволюции клетки. Параллельное программирование на языке с. Заноза Помощь студентам 4 03.04.2008 22:13
как написать DLL на Turbo Pascal? mofr Паскаль, Turbo Pascal, PascalABC.NET 4 26.02.2007 18:35