Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
1

Файл из одномерных целочисленных массивов

19.03.2014, 11:59. Показов 1005. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сформировать файл, компонентами которого являются одномерные целочисленные массивы.
Вывести на экран количество отрицательных элементов каждого массива сформированного файла.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2014, 11:59
Ответы с готовыми решениями:

Решение задач на обработку одномерных массивов. Использование массивов в качестве параметров в подпрограммах
В массиве x(n) подсчитать количество положительных k1 и количество отрица-тельных k2 элементов....

Создать файл из одномерных целочисленных массивов
Задача: Создать файл из одномерных целочисленных массивов a1,a2,...,a10, заполненных числами от...

Вычислить сумму и разность элементов двух заданных целочисленных одномерных массивов А и В размером 10 элементов
Вычислить сумму и разность элементов двух заданных целочисленных одномерных массивов А и В размером...

Использование одномерных целочисленных массивов
буду рад если мне помогут понять как решить задачи: Задачи на использование одномерных...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.03.2014, 15:00 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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
uses crt;
const max=20;
type mas=array[1..max] of integer;
     matr=array[1..max] of mas;
     fail=file of mas;
var a:mas;
    f:fail;
    n,m,i,j,k:integer;
begin
clrscr;
randomize;
assign(f,'file');
rewrite(f);
repeat
write('Количество массивов от 1 до ',max,' n=');
readln(n);
until n in [1..max];
repeat
write('Размер массивов от 1 до ',max,' m=');
readln(m);
until m in [1..max];
for i:=1 to n do
 begin
  for j:=1 to m do
  a[j]:=-20+random(50);
  write(f,a);
 end;
seek(f,0);
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,a);
  k:=0;
  for j:=1 to m do
   begin
    write(a[j]:4);
    if a[j]<0 then k:=k+1;
   end;
  writeln;
  writeln('Количество отрицательных=',k)
 end;
close(f);
readln
end.
1
0 / 0 / 0
Регистрация: 19.03.2014
Сообщений: 5
19.03.2014, 17:35  [ТС] 3
спасибо
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
19.03.2014, 18:29 4
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Цитата Сообщение от Puporev Посмотреть сообщение
f:fail;
Если имелся в виду нетипизированный файл f: file;, то открытие/закрытие должно быть с указанием размера записи (если только не совпадает с 128 -- размером записи по умолчанию), ввод/вывод через BlockRead/BlockWrite.
Добавлено: не заметил выше fail=file of mas;, посчитал за символичную :-) опечатку.

Вариант, где элементом файла является массив:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const
  LIM=50; W=4; n=10;
type
  tmas = array [1..n] of integer;
var
  f: file of tmas;
  a: tmas;
  i, j, m, c: integer;
begin
  Randomize;
  Write('Количество массивов: '); Readln(m);
  Assign(f,'m.bin'); Rewrite(f);
  for i:=1 to m do begin
    c:=0;
    for j:=1 to n do begin
      a[j]:=Random(LIM*2)-LIM; Write(a[j]:W);
      if a[j]<0 then inc(c);
    end; WriteLn('|',c:W);
    Write(f,a);
  end;
  Close(f);
end.
Если нужно считать отрицательные обязательно в прочитанном из файла:
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
const
  LIM=50; W=4; n=10;
type
  tmas = array [1..n] of integer;
var
  f: file of tmas;
  a: tmas;
  i, j, m, c: integer;
begin
  Randomize;
  Write('Количество массивов: '); Readln(m);
  Assign(f,'m.bin'); Rewrite(f);
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[j]:=Random(LIM*2)-LIM; Write(a[j]:W);
    end; WriteLn;
    Write(f,a);
  end;
  Seek(f,0); i:=1;
  while not eof(f) do begin
    Read(f,a); c:=0;
    for j:=1 to n do if a[j]<0 then inc(c);
    Write(' ',i,':',c); inc(i);
  end;
  Close(f);
end.
Добавлено через 32 минуты
И вариант с нетипизированным файлом:
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
const
  LIM=50; W=4; nn=20;
type
  tmas = array [1..nn] of integer;
var
  f: file;
  a: tmas;
  i, j, m, n, c: integer;
begin
  Randomize;
  repeat
    Write('Количество массивов и элементов в массиве (1..',nn,'): ');
    Readln(m,n);
  until (m>0) and (n>0) and (n<=nn);
  Assign(f,'m.bin'); Rewrite(f,sizeof(integer)*n);
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[j]:=Random(LIM*2)-LIM; Write(a[j]:W);
    end; WriteLn;
    BlockWrite(f,a,1);
  end;
  Seek(f,0); i:=1;
  while not eof(f) do begin
    BlockRead(f,a,1); c:=0;
    for j:=1 to n do if a[j]<0 then inc(c);
    Write(' ',i,':',c); inc(i);
  end;
  Close(f);
end.
0
19.03.2014, 18:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2014, 18:29
Помогаю со студенческими работами здесь

Для двух целочисленных одномерных массивов А и В найти их теоретико-множественное сечение
Для двух целочисленных одномерных массивов А и В найти их теоретико-множественное сечение С = А...

Вычислить сумму и разность соответствующих элементов двух заданных целочисленных одномерных массивов А и В размером 10
Вычислить сумму и разность соответствующих элементов двух заданных целочисленных одномерных...

Создать файл f, компонентами которого являются 10 целочисленных массивов
Помогите написать. Создать файл f, компонентами которого являются 10 целочисленных массивов a1,..,...

Как записывать несколько одномерных массивов, и несколько двумерных массивов в один единственный текстовый файл
Как записывать несколько одномерных массивов, и несколько двумерных массивов в один единственный...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru