Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Матрица в Файле [Pascal]

13K
23 сентября 2007 года
*alt
36 / / 12.04.2007
Задача.
Пусть матрица А целых чисел размером Х*Х записана по строкам в файл. Определите, является ли она единичной. (файл типизированный)

Как я думаю:
1. Выбираем размерность матрица и заводим соответственное кол-во переменных типа String - s1,s2,s3.....
2. Ну там создаём файл... и тд и тп...
3. Просим пользователя ввести эти самые строки... и записываем их в файл (как? как перейти на другую строку?)
4. Дальше читаем файл и проверем на наличие единиц и нулей на соответствующих местах.... (опять же как перейти на другую строку)
5. Выводим матрицу и пишем Ответ: да/нет..... (как выводить?)

Помогите пожалуйста... рад буду любой помощи (даже исходнику=)))))
622
24 сентября 2007 года
nilbog
507 / / 19.12.2006
вам нужно посмотреть процедуры readln(f,...) и writeln...
если правильно я понял задачу то особые переменные string не нужны
по 1 числу считываем смотрим это 0 или 1 если 1 стоит ли на нужном месте (диагональ)
все
13K
24 сентября 2007 года
*alt
36 / / 12.04.2007
Получается, что вся матрица записана в одну строчку? А как тогда протчитать нужное место для 1?
622
24 сентября 2007 года
nilbog
507 / / 19.12.2006
почему это не важно
размер по условию задачи дан X
то есть X раз делаем read(f,a) a:integer а потом readln(f) // перевод на новую строчку
276
24 сентября 2007 года
Rebbit
1.1K / / 01.08.2005
Цитата: *alt
Задача.
Пусть матрица А целых чисел размером Х*Х записана по строкам в файл. Определите, является ли она единичной. (файл типизированный)


Не вяжется. Если файл типизированый, то матрица не может быть записана по строках, потому что файл бинарный а не текстовый. Виясните сначала етот аспект, потому что он в корень меняет ввод/вывод.

7.8K
24 сентября 2007 года
Tingo
201 / / 17.05.2007
Задача не дана четко.
Или опишите задачу четко или же
пишите то что вам не ясно.
13K
24 сентября 2007 года
*alt
36 / / 12.04.2007
Вот точное задание::
Пусть матрица А целых чисел размером 100*100 записана по строкам в файле. Определите, является ди она единичной.


Задача в теме ТИПИЗИРОВАННЫЕ файлы (простите за БОЛЬшие буквы). Больше тут ничего не написано....
7.8K
24 сентября 2007 года
Tingo
201 / / 17.05.2007
Не знаю что насчет типизированных файлов, но в обычном текстовом решается даже без использования массива ))

Код:
0)
const ARRAY_SIZE=100; // размер массива в файле
1)
c:integer <- который элемент по диагонали
n:integer <- текущий элемент
i,integer;
flag:boolean;
2)
c:=1;  flag:=false;
for i:=1 to ARRAY_SIZE do begin
 for k:=1 to c do begin
  read(f,n);
 end;
 if (not(n=1)) begin Then Writeln('Ne edinicniy massiv'); flag:=true; break; end;
end;
if(not(flag)) then writeln('Edinicniy massiv!!!');


Дамм.... что-то в этом духе.
7.8K
24 сентября 2007 года
Tingo
201 / / 17.05.2007
Оооо.... вспомнил что такое "типизированный файл".))

Ну в таком случае приводи свой тип, так называемый record.
По нему и будем ориентироватся дальше.

Хотя если не имеет принципиальной разницы, можно( и даже лучше) использовать
простой текстовый файл, и метод который я показал выше.
17K
24 сентября 2007 года
ALEX_
40 / / 19.04.2007
Код:
program matrix;
uses crt;
const SIZE=100;
var
    f:file of string;
    st:string;
    i,k:integer;
    flag:boolean;
begin
assign(f,'file.type');

{создание файла}
rewrite(f);
for i:=1 to SIZE do begin
 for k:=1 to SIZE do
 begin
 if k=i then st[k]:='1' else st[k]:='0';
 end;
 write(f,st);
 end;
close(f);
{создание файла}

reset(f);
flag:=true;
for i:=1 to SIZE do
begin
read(f,st);
for k:=1 to SIZE do begin
if (st[k]='0') and (k=i) then begin flag:=false; end;
if (st[k]='1') and (k<>i) then begin flag:=false; end;
end;
end;
close(f);
if flag=true then writeln('Единичная') else writeln('Неидиничная');
readln;
end.

Будет где-то так, вывод и ввод еще можно сделать.
13K
25 сентября 2007 года
*alt
36 / / 12.04.2007
ALEX_
Цитата:
f:file of string;

- Такого не может быть....
....не один пост не приблизил к истине .... пока....
Всё же надо с типизированным файлом работать:(
Вроде просто записать в файл и проверить....
но... как мне кажется нужно записать матрицу в одну строчку (подряд все символы), а потом проверить, но не знаю как перескакивать на нужное место.... НУ короче в тупике пока.....

17K
28 сентября 2007 года
ALEX_
40 / / 19.04.2007
Чел, у меня учебник лежит по Pascal на столе. Типизированные файлы задаются предложением вида <имя_файла> = FILE of <имя_типа>. Если ты знаешь еще какие типизированые файлы - будь добр сообщи.
622
28 сентября 2007 года
nilbog
507 / / 19.12.2006
*alt
f:file of string;
в паскале такое может быть ;)
никаких проблем
но это точно не то что нужно в этой задаче
если типизированный файл то это скорее всего f:file of integer (какие еще типизированные с целыми числами)
но тогда неясно что значит запись по строкам - запись по строкам имеет место в f:text
32K
05 октября 2007 года
NOEX
6 / / 21.09.2007
Код:
uses crt;

type MX=array[1..100,1..100] of word;

var M:MX;
    FileName:string;


procedure Gen(Var M:MX);
 var x,y:word;
 begin;
  for y:=1 to 100 do
   for x:=1 to 100 do
    M[X,Y]:=random(1000);
 end;

procedure Save(N:string);
 var x,y:word;
     t:text;
 begin;
  assign(T,N);
  rewrite(T);
  for y:=1 to 100 do
   begin
    for x:=1 to 100 do
     write(T,M[x,y]);
    writeln(T);
   end;
  close(T);
 end;

procedure Load(N:string);
 var x,y:word;
     t:text;
 begin;
  assign(T,N);
  reset(T);
  for y:=1 to 100 do
   begin
    for x:=1 to 100 do
     read(T,M[x,y]);
    readln(T);
   end;
  close(T);


 end;

begin;
 randomize;
 Gen(M);

 write('Enter Name File'); readln(FileName);
 Save(FileName);
 readln;


end.


[COLOR="Red"]Оформлять код по правилам при помощи тегов [ code ] [ /code ].[/COLOR]модератор.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог