0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 12
1

Дан файл вещественных чисел, содержащий ненулевую часть трехдиагональной матрицы (по строкам)

14.03.2016, 20:41. Показов 2396. Ответов 4
Метки нет (Все метки)

Дан файл вещественных чисел, содержащий ненулевую часть трехдиагональной матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2016, 20:41
Ответы с готовыми решениями:

Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый файл, содержащий элеме
Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый...

Дан файл вещественных чисел, содержащий элементы нижнетреуголь- ной матрицы (по строкам)
Дан файл вещественных чисел, содержащий элементы нижнетреуголь- ной матрицы (по строкам). Создать...

Создать новый файл с именем S, содержащий ненулевую часть произведения A*B
Помогите, пожалуйста, исправить программу до рабочего состояния, возникли ошибки. (очень...

Дан текстовый файл,каждая строка которого содержит изображения нескольких чисел,разделенные пробелами(вещественные числа имеют ненулевую дробную часть
Text46. Дан текстовый файл, каждая строка которого содержит изображения нескольких чисел,...

4
428 / 359 / 129
Регистрация: 09.09.2011
Сообщений: 1,309
14.03.2016, 23:13 2
нужен пример - что на входе, что на выходе. Из условия не очень понятно...
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
15.03.2016, 13:20 3
Лучший ответ Сообщение было отмечено Demplar как решение

Решение

В Lazarus 1.4.4

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
var
  Form1: TForm1;
  t2:TStringList;
  n:integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
    r:double;
    t1:TStringList;
    s,s1:string;
begin
t1:=TStringList.Create; //создаем список и грузим в него наш файл
if OpenDialog1.Execute then t1.LoadFromFile(UTF8ToSys(OpenDialog1.Filename));
t1.DelimitedText:=t1.Text;//разбиваем его на числа
//отформатируем числа для вывода в файл
//считаем что числа в исходном файле имеют не более 2 знаков в целой части
for i:=0 to t1.Count-1 do
 begin
  val(t1[i],r,k);
  str(r:6:2,s); //вывод в формате _00.00
  t1[i]:=s;
 end;
s1:='  0.00'; //нулевые ячейки
n:=2+(t1.Count-4)div 3;//размер матрицы=2 строки по 2 числа+(n-2) по 3 числа
t2:=TStringList.Create; //создаем список дляформирования матрицы
k:=0;//индекс в первом списке
for i:=1 to n do
 begin
  s:=''; //формируем i-товую строку
  if i=1 then//если первая
   begin
    for j:=1 to 2 do //2 числа в начале
     begin
      s:=s+t1[k];
      inc(k);
     end;
    if n>2 then //если больше 2, то дописываем ноли
    for j:=i+2 to n do s:=s+s1;
   end
 else if i<n then //если [2..n-1]
  begin
   if n>3 then//если размер больше 3
   for j:=1 to i-2 do s:=s+s1;//ноли в начале
   for j:=i-1 to i+1 do //три числа
     begin
      s:=s+t1[k];
      inc(k);
     end;
   if i+1<n then //если не вся строка, то ноли в конец
   for j:=i+2 to n do s:=s+s1;
  end
 else //последняя строка
  begin
   if n>2 then //если больше 2
   for j:=1 to i-2 do s:=s+s1;//ноли в начало
   for j:=n-1 to n do // 2 числа
    begin
     s:=s+t1[k];
     inc(k);
     end;
   end;
  t2.Add(s);//вставим строку в список 2
 end;
end;
//сохраним список 2 в файл
procedure TForm1.Button2Click(Sender: TObject);
begin
  if SaveDialog1.Execute then t2.SaveToFile(UTF8ToSys(SaveDialog1.FileName));
  ShowMessage('Матрица прочитана и записана в файл '+SaveDialog1.FileName);
end;
Пример исходного файла
1.25 0.36 2.56 1.87 2.68 0.56 1.69 3.56 9.23 6.59 2.56 5.32 2.56
Матрица
1.25 0.36 0.00 0.00 0.00
2.56 1.87 2.68 0.00 0.00
0.00 0.56 1.69 3.56 0.00
0.00 0.00 9.23 6.59 2.56
0.00 0.00 0.00 5.32 2.56
Вложения
Тип файла: rar Трехдиагональная матрица.rar (63.3 Кб, 4 просмотров)
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 12
15.03.2016, 16:47  [ТС] 4
Благодарю
0
0 / 0 / 0
Регистрация: 20.03.2016
Сообщений: 3
20.03.2016, 16:06 5
Паволов, не надо благодарностей , завтра на кафедру в 14.30.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2016, 16:06
Помогаю со студенческими работами здесь

Дан файл вещественных чисел Создать файл целых чисел, содержащий номера локальных максимумов исходного файла
2-File. Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных...

Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных экстремумов исходного файла в порядке убывания
File22. Дан файл вещественных чисел. Создать файл целых чисел, содержащий номера всех локальных...

Работа с файлами (Дан файл, содержащий n вещественных чисел. .)
Добрый вечер, помогите кто сможет с задачей) Дан файл, содержащий n вещественных чисел. Определить...

Даны два целых числа I, J и файл вещественных чисел, содержащий элементы прямоугольной матрицы
Даны два целых числа I, J и файл вещественных чисел, содержащий элементы прямоугольной матрицы (по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru