МатрВВ.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 

(******************************************************************************)
(**)                        ОТДЕЛ МатрВВ;
(******************************************************************************
 * НАЗНАЧЕНИЕ: ввод из файла и вывод на экран Матриц и Векторов
 ******************************************************************************)
ИСПОЛЬЗУЕТ 
  Матем,
  Вект,
  Матр,
  Компл,
  КомплВект,
  КомплМатр,
  Читать ИЗ "..\Обмен\",
  Вывод  ИЗ "..\Обмен\";

(******************************************************************************)
ЗАДАЧА ОткрытьПоток-(имяФайла-:ЦЕПЬ):Читать.Поток;
(* Цель:  если возможно, то открыть поток на чтение, иначе АВОСТ
 ******************************************************************************
 * До:    <имяФайла> - имя считываемого файла
 * Ответ: открытый на чтение поток *)
ПЕР
  п:Читать.Поток;
УКАЗ
  п:=Читать.Открыть(имяФайла);
  ЕСЛИ п = ПУСТО ТО
    Вывод.Цепь('^Файл "');
    Вывод.Цепь(имяФайла);
    Вывод.Цепь('" не найден.^');
    СТОП(1) 
  КОН;
  п.видЗнаков:=Читать.знУни;
  ВОЗВРАТ п
КОН ОткрытьПоток;
 
(******************************************************************************)
ЗАДАЧА ЧитатьМатр-(п:Читать.Поток):Матр.Доступ;
(* Цель:  прочитать из потока размер матрицы (строк, столбцов)
 *        создать матрицу и заполнить ее данными из этого потока
 ******************************************************************************
 * До:    <п> - открытый на чтение поток
 * Ответ: созданная матрица *)
ПЕР
  i,j,строк,столбцов:ЦЕЛ;
  М:Матр.Доступ;
УКАЗ
  строк:=Читать.Цел(п);
  столбцов:=Читать.Цел(п);
  СОЗДАТЬ(М,строк,столбцов);
  ОТ i:=0 ДО строк-1 ВЫП
    ОТ j:=0 ДО столбцов-1 ВЫП
      М[i,j]:=Читать.ШирВещ(п)
    КОН 
  КОН;
  ВОЗВРАТ М
КОН ЧитатьМатр;
 
(******************************************************************************)
ЗАДАЧА ЧитатьКомплМатр-(п:Читать.Поток):КомплМатр.Доступ;
(* Цель:  прочитать из потока размер матрицы (строк, столбцов)
 *        создать матрицу и заполнить ее данными из этого потока
 ******************************************************************************
 * До:    <п> - открытый на чтение поток
 * Ответ: созданная матрица *)
ПЕР
  i,j,строк,столбцов:ЦЕЛ;
  x,y:Матем.Вещ;
  М:КомплМатр.Доступ;
УКАЗ
  строк:=Читать.Цел(п);
  столбцов:=Читать.Цел(п);
  СОЗДАТЬ(М,строк,столбцов);
  ОТ i:=0 ДО строк-1 ВЫП
    ОТ j:=0 ДО столбцов-1 ВЫП
      x:=Читать.ШирВещ(п);
      y:=Читать.ШирВещ(п);
      Компл.алгВид(x,y,М[i,j])
    КОН 
  КОН;
  ВОЗВРАТ М
КОН ЧитатьКомплМатр;
 
(******************************************************************************)
ЗАДАЧА ВыводМатр-(описание-:ЦЕПЬ; М-:Матр.Вид);
(* Цель:  вывести на экран содержимое матрицы <М> 
 ******************************************************************************
 * До:    <описание> - описатель представления элемента матрицы (см. Текст.отд)
 *        <М>        - прямоугольная матрица *)
ПЕР
  i,j:ЦЕЛ;
УКАЗ
  ОТ i:=0 ДО РАЗМЕР(М,0)-1 ВЫП
    ОТ j:=0 ДО РАЗМЕР(М,1)-1 ВЫП
      Вывод.ЧВещ(описание,М[i,j],0,0,0)
    КОН; 
    Вывод.Цепь('^')
  КОН
КОН ВыводМатр;
 
(******************************************************************************)
ЗАДАЧА ВыводКомплМатр-(описание-:ЦЕПЬ; М-:КомплМатр.Вид);
(* Цель:  вывести на экран содержимое матрицы <М> 
 ******************************************************************************
 * До:    <описание> - описатель представления элемента матрицы (см. Текст.отд)
 *        <М>        - прямоугольная матрица *)
ПЕР
  i,j:ЦЕЛ;
УКАЗ
  ОТ i:=0 ДО РАЗМЕР(М,0)-1 ВЫП
    ОТ j:=0 ДО РАЗМЕР(М,1)-1 ВЫП
      Вывод.ЧВещ(описание,М[i,j].x,М[i,j].y,0,0)
    КОН; 
    Вывод.Цепь('^')
  КОН
КОН ВыводКомплМатр;
 
(******************************************************************************)
ЗАДАЧА ВыводВект-(описание-:ЦЕПЬ; в-:Вект.Вид);
(* Цель:  вывести на экран содержимое вектора <в> 
 ******************************************************************************
 * До:    <описание> - описатель представления элемента матрицы (см. Текст.отд)
 *        <в>        - исходный вектор *)
ПЕР
  i:ЦЕЛ;
УКАЗ
  ОТ i:=0 ДО РАЗМЕР(в)-1 ВЫП
    Вывод.ЧВещ(описание,в[i],0,0,0)
  КОН;
  Вывод.Цепь('^')           (* переход на новую строку при выводе на экран *)
КОН ВыводВект;
 
(******************************************************************************)
ЗАДАЧА ВыводКомплВект-(описание-:ЦЕПЬ; в-:КомплВект.Вид);
(* Цель:  вывести на экран содержимое вектора <в> 
 ******************************************************************************
 * До:    <описание> - описатель представления элемента матрицы (см. Текст.отд)
 *        <в>        - исходный вектор *)
ПЕР
  i:ЦЕЛ;
УКАЗ
  ОТ i:=0 ДО РАЗМЕР(в)-1 ВЫП
    Вывод.ЧВещ(описание,в[i].x,в[i].y,0,0)
  КОН;
  Вывод.Цепь('^')           (* переход на новую строку при выводе на экран *)
КОН ВыводКомплВект;
 
КОН МатрВВ.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы