Ввод данных из таблицы в паскаль - Pascal ABC
Формулировка задачи:
Здравствуйте, нужна помощь, написать часть программы, которая заносит данные таблицы в память, либо брать данные из *.txt. Надеюсь объяснил правильно... Решение а) и б) не обязательно, додумаюсь сам, но был бы премного благодарен за полное решение.
Элемент Атомная масса Количество электронов Относительная электроотрицательность
Водород 1 1 2,1
Литий 6,9 3 0,97
Углерод 12 6 2,5
Азот 14 7 3,07
Кислород 16 8 3,5
Алюминий 27 13 1,47
Фосфор 31 15 2,1
Аргон 39,9 18 0
Спойлер
Решение задачи: «Ввод данных из таблицы в паскаль»
textual
Листинг программы
const m = 100; type tab=record; el: string; a_m: real; k_e: real; o_e: real; end; var tab_m:array[1..m] of tab; zap:tab; tab_t:text; n,i,j,me:integer; k:char; a:real; begin assign(tab_t,'tab.txt');reset(tab_t); n:=0; while not Eof(tab_t) do begin inc(n); k:=#0; while k<>' ' do begin read(tab_t,k); tab_m[n].el:= tab_m[n].el+k;end; readln(tab_t, tab_m[n].a_m, tab_m[n].k_e, tab_m[n].o_e); end; writeln('Введте атомную массу'); readln(a); me:=1; for i:=1 to n do begin if tab_m[me].k_e < tab_m[i].k_e then me:=i; if tab_m[i].a_m = a then writeln('Элемент с искомой атомной массой: ',tab_m[i].el); end; writeln('Элемент с максимальным колличеством электронов: ', tab_m[me].el); for i:=1 to n-1 do for j:=1 to n-i do begin if tab_m[j].o_e>tab_m[j+1].o_e then begin zap:=tab_m[j]; tab_m[j]:=tab_m[j+1]; tab_m[j+1]:=zap; end; end; writeln('Итоговая таблица:'); for i:=1 to n do writeln(tab_m[i].el:10, tab_m[i].a_m:6:2, tab_m[i].k_e:6:2, tab_m[i].o_e:6:2); close(tab_t); end.
Объяснение кода листинга программы
- В первой строке кода объявляются переменные m, tab, el, a_m, k_e, o_e, n, i, j, me, k, a, и определяется тип данных для переменной tab.
- Затем определяется переменная tab_m типа array[1..m] of tab, которая будет использоваться для хранения данных из таблицы.
- Далее, переменная zap типа tab инициализируется значением последней записи из файла.
- Переменная tab_t типа text инициализируется путем к файлу
tab.txt
. - Затем, в цикле while считываются данные из файла до конца файла.
- Внутри цикла while считываются данные из файла до конца файла.
- Если значение переменной k меньше любого пробела, то значение переменной k добавляется к значению переменной el текущего элемента.
- После чтения данных из файла, переменные a_m, k_e и o_e инициализируются соответствующими значениями.
- Затем, в цикле for вычисляется максимальное количество электронов в таблице.
- В цикле for также происходит перераспределение элементов таблицы при необходимости.
- После этого выводится итоговая таблица с данными из таблицы.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д