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

Значение было недопустимо малым или недопустимо большим для Int32

10.10.2021, 15:37. Показов 734. Ответов 3

Author24 — интернет-сервис помощи студентам
Здрастувуйте, у меня возникла проблема, выдает ошибку: Значение было недопустимо малым или недопустимо большим для Int32.

Условие задачи:
Ведомость об успеваемости студентов содержит фамилию и оценки студентов, ведомость о
стипендию содержит фамилию и размер стипендии. Объединить эти две сведения в одну. если
студент не получает стипендию, то сообщить об этом словами «Не получает".

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
program lab11;
 
type
stud=record
pr:array[1..10] of char;
im:array[1..10] of char;
nk:1..6;
ng:1..8;
ocin:array[1..3,1..5] of 2..5;
end;
 
studstup=record
pr:array[1..10] of char;
im:array[1..10] of char;
nk:1..6;
ng:1..8;
stup:real;
end;
 
studall=record
pr:array[1..10] of char;
im:array[1..10] of char;
nk:1..6;
ng:1..8;
ocin:array[1..3,1..5] of 2..5;
stup:real;
end;
 
var
fd, fb:text;
dek:array[1..5] of stud;
stup:array[1..5] of studstup;
all:array[1..5] of studall;
buh: array [1..10] of studstup;
i,j,s,p,r,m:integer;
match_:boolean;
begin
 
assign(fd,'fd.txt');
reset(fd);
assign(fb,'fb.txt');
reset(fb);
for i:=1 to 5 do
begin
for j:=1 to 10 do
read(fd,dek[i].pr[j]);
for j:=1 to 10 do
read(fd,dek[i].im[j]);
read(fd,dek[i].nk);
readln(fd,dek[i].ng);
for s:=1 to 3 do
begin
for p:=1 to 5 do
begin
//for p:=1 to 5 do
begin
read (fd,dek[i].ocin[s,p]);
end;
readln(fd);
end;
end;
 
//for i:=1 to 5 do
begin
for j:=1 to 10 do
read(fb,buh[i].pr[j]);
for j:=1 to 10 do
read(fb,buh[i].im[j]);
read(fb,buh[i].nk);
read(fb,buh[i].ng);
readln(fb,buh[i].stup);
end;
 
match_:= true;
 
//for i:=1 to 5 do
begin
 
for j:=1 to 10 do
if (dek[i].pr[j]<>buh[i].pr[j]) or (dek[i].im[j]<>buh[i].im[j]) then match_:=false;
 
if (match_=true)and (dek[i].nk=buh[i].nk) and (dek[i].ng=buh[i].ng) then
 
 
begin
for j:=1 to 10 do
all[i].pr[j]:=dek[i].pr[j];
for j:=1 to 10 do
all[i].im[j]:=dek[i].im[j];
all[i].nk:=dek[i].nk;
all[i].ng:=dek[i].ng;
for s:=1 to 3 do
for p:=1 to 5 do
all[i].ocin[s,p]:=dek[i].ocin[s,p];
all[i].stup:=buh[i].stup;
end;
end;
 
writeln('REZULTAT=');
//for i:=1 to 5 do
begin
for j:=1 to 10 do
write(all[i].pr[j]);
for j:=1 to 10 do
write(all[i].im[j]);
write(all[i].nk,' ');
writeln(all[i].ng);
for s:=1 to 3 do
begin
for p:=1 to 5 do
begin
write(all[i].ocin[s,p],' ');
end;
writeln;
end;
if all[i].stup=0 then
writeln('stypendii ne otrymuie')
else
writeln('stypendia= ',all[i].stup:6:2);
end;
close (fd);
close(fb);
end;
END.
fb.txt

fd.txt
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2021, 15:37
Ответы с готовыми решениями:

Значение было недопустимо малым или недопустимо большим для Int32 по Pascal ABC.NET
Вопрос такой, у меня имеется txt файл, с ранее записанными значениями матрицы (матрица из...

Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32
Помогите найти ошибку. Программа не читает данные с файла program Uchet; uses Crt; type ...

Значение было недопустимо малым или недопустимо большим для знака
Здравствуйте. Не могу понять почему не работает процедура. Пишет ошибку в 18 строчке(Read(FIn,ch))...

Ошибка времени выполнения: значение было недопустимо малым или недопустимо большим для знака
program ex4; var fin: text; fout: text; funcWords: array of string; qWords: array ...

Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32
Незнакомая ошибка в страшном примере. Решаю я спокойно (нет) отборочный этап олимпиады, прогаю на...

3
5077 / 2649 / 2349
Регистрация: 10.12.2014
Сообщений: 10,026
11.10.2021, 04:31 2
Вот ваш файл fb.txt:
Код
1         2         3         
12345678901234567890123456789
[   pr   ][   im   ][ stup  ]

Mazyr     Ivan       1900
Petruk    Iryna      1300
Вот вы его пытаетесь считывать:
Pascal
100
101
102
103
104
105
106
107
108
109
    for i:=1 to 5 do
    begin
      for j := 1 to 10 do
        read(fb, buh[i].pr[j]);
      for j := 1 to 10 do
        read(fb, buh[i].im[j]);
      read(fb, buh[i].nk);
      read(fb, buh[i].ng);
      readln(fb, buh[i].stup);
    end;
pr и im заполняются.
В nk считывается 3.
А уже для ng и stup не хватает данных!
0
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 42
13.10.2021, 11:43  [ТС] 3
Как создать файл ?
0
5077 / 2649 / 2349
Регистрация: 10.12.2014
Сообщений: 10,026
13.10.2021, 12:21 4
Это ваше задание и ваша программа, а вы спрашиваете
Цитата Сообщение от Komar13 Посмотреть сообщение
Как создать файл ?
Может за вас всю программу написать?

Ну вот:
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
type
  tRec = class
    Фамилия : String;
    Оценки  : array of Integer;
    Стипендия : Integer;
    
    procedure Print := PrintLn($'{Фамилия,-15} — Оценки {Оценки.JoinToString,-10} — Стипендия : {Стипендия=0?''Не получает'':Стипендия.ToString}');
    
    constructor(s : String);
    begin
      var a := s.ToWords;
      Фамилия := a[0];
      Оценки  := a[1:].JoinToString.ToIntegers;
    end;
    
  end;
  
begin
  var l := ReadAllLines('Успеваемость.txt').Select(s->New tRec(s)).ToList;
  foreach var s in ReadAllLines('Ведомость.txt') do
    begin
      var a := s.ToWords;
      var(Фамилия,Стипендия) := (a[0],a[1].ToInteger);
      var Студент := l.Find(Студент->Студент.Фамилия = Фамилия);
      if Студент <> nil then
        Студент.Стипендия := Стипендия;
    end;
  foreach var Студент in l do Студент.Print;
end.
Файл Успеваемость.txt
Код
Иванов 5 5 4
Петров 5 4 5
Сидоров 4 5 5
Троечник 3 3 3
Отличник 5 5 5
Хорошист 4 4 4
Файл Ведомость.txt
Код
Иванов 5000
Петров 5400
Сидоров 4900
Отличник 10000
Хорошист 4000
Результат работы программы:
Код
Иванов          — Оценки 5 5 4      — Стипендия : 5000 
Петров          — Оценки 5 4 5      — Стипендия : 5400 
Сидоров         — Оценки 4 5 5      — Стипендия : 4900 
Троечник        — Оценки 3 3 3      — Стипендия : Не получает 
Отличник        — Оценки 5 5 5      — Стипендия : 10000 
Хорошист        — Оценки 4 4 4      — Стипендия : 4000
P.S. Только поможет ли?
0
13.10.2021, 12:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2021, 12:21
Помогаю со студенческими работами здесь

Значение было недопустимо малым или недопустимо большим для Int32
Вычислить интеграл с переменным верхним пределом от функции ctg(x) в диапазоне х= с шагом h,...

Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32
Доброго времени суток! Столкнулся с проблемой: при минорных изменениях кода я получил ошибку,...

System.OverflowException: "Значение было недопустимо малым или недопустимо большим для Int32."
Есть код, который при вводе числа определяет в нём количество единиц, двоек и троек. Код криво...

Значение было недопустимо малым или недопустимо большим для Decimal
Проблема в заголовке темы. Имеем: Dictionary &lt;double, double&gt; f2 = gcnew Dictionary&lt;double,...

Значение было недопустимо малым или недопустимо большим для UInt32
Добрый день, есть парсер sqllite таблиц, нашел на просторах интернета и возникает такая беда при...


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

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

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