Скачать презентацию 8 Циклическая программа с численными и строковыми данными Скачать презентацию 8 Циклическая программа с численными и строковыми данными

Лекция Pascal_8.pptx

  • Количество слайдов: 15

8. Циклическая программа с численными и строковыми данными Такие программы реализуют использование форматного вывода 8. Циклическая программа с численными и строковыми данными Такие программы реализуют использование форматного вывода для представления информации в виде таблиц. – ввод исходных данных проводить из внешнего файла; –результат представить в виде таблицы, имеющей заголовок и заголовки столбцов.

8. 1. Оформление таблицы Могут использоваться: а) для горизонтальных линий: *, – , _ 8. 1. Оформление таблицы Могут использоваться: а) для горизонтальных линий: *, – , _ , точка б) для вертикальных линий: *, ! , I , i в) коды символов псевдографики () 218 194 ┌ ┬ 195 197 ├ ┼ 192 193 └ ┴ 191 ┐ 180 ┤ 217 ┘ 214 210 ╓ ╥ 199 215 ╟ ╫ 211 208 ╙ ╨ 213 ╒ 198 ╞ 212 ╘ 183 ╖ 182 ╢ 189 ╜ 209 ╤ 216 ╪ 207 ╧ 184 ╕ 181 ╡ 190 ╛ 201 ╔ 204 ╠ 200 ╚ 196 ─ 179 │ 203 ╦ 206 ╬ 202 ╩ 187 ╗ 185 ╣ 188 ╝ 205 ═ 186 ║

8. 2. Вывод данных в таблицы Для “форматного” вывода на экран любому элементу вывода 8. 2. Вывод данных в таблицы Для “форматного” вывода на экран любому элементу вывода нужно задать поле (количество позиций, на которое это выражение выводится). Например: writeln(’Сумма’, 8, 24, 3) Сумма 8243 writeln(’Сумма’: 8, 8: 4, 24: 5, 3: 4) writeln(’ Сумма ’, 24: 4, ’ ’) Сумма 8 24 24 Для вещественных выражений нужно задать еще и количество позиций для дробной части. 3

8. 3. Ввод данных из внешнего файла Eoln(f) – эта функция (end of line) 8. 3. Ввод данных из внешнего файла Eoln(f) – эта функция (end of line) принимает значение “истина” (true), если достигнут конец строки, иначе “ложь”(false). Eof(f) – эта функция (end of file) принимает значение “истина” (true), если достигнут конец файла, иначе “ложь”(false). Например: k: =0; while not eof(f) do begin ink(k); readln(f, FAM[k], TEL[k]); end;

Пример 33. Даны номерные знаки автомашин, их грузоподъемности (т) и расходы топлива на 100 Пример 33. Даны номерные знаки автомашин, их грузоподъемности (т) и расходы топлива на 100 км пробега. Вывести список автомашин, у которых отношение грузоподъемности к расходу топлива более 0, 3 и менее 0, 5. NZ(10) – номерные знаки; G(10) – грузоподъемности; R(10) – расходы топлива на 100 км пробега; G[i]/R[i] – отношение грузоподъемности к расходу топлива. Внешний файл: Т 456 КС 3. 9 10. 1 В 123 МК 7. 1 9. 3. . Е 234 ТМ 3. 3 10. 8

Текст программы: program pr 33; var NZ: array [1. . 10] of string[6]; G, Текст программы: program pr 33; var NZ: array [1. . 10] of string[6]; G, R: array [1. . 10] of real; a: real; i: byte; f: text; begin assign(f, ’LR_7. txt’); reset(f); {считывание из внешнего файла} i: =0; while not eof(f) do begin inc(i); readln(f, NZ[i], G[i], R[i]); end; close(f); {шапка таблицы}

Продолжение текста программы: for i: =1 to 36 do write(’*’); writeln(’** Номер машины ** Продолжение текста программы: for i: =1 to 36 do write(’*’); writeln(’** Номер машины ** G[i]/R[i] **’); for i: =1 to 36 do write(’*’); writeln; {заполнение таблицы} for i: =1 to 10 do begin a: =G[i]/R[i]; if (a>0. 3) and (a<0. 5) then writeln(’** ’, NZ[i], ’**’: 8, a: 10: 2, ’**’: 5); end; for i: =1 to 36 do write(’*’); writeln; end.

Пример 33. Результат выполнения программы: ****************** ** Номер машины ** G[i]/R[i] ** ****************** ** Пример 33. Результат выполнения программы: ****************** ** Номер машины ** G[i]/R[i] ** ****************** ** Т 456 КС ** 0. 39 ** ** 444444 ** 0. 33 ** ** 222222 ** 0. 40 ** ** 111111 ** 0. 40 ** ******************

7. 4. Записи. Описание записи Запись – это структура данных, состоящая из фиксированного числа 7. 4. Записи. Описание записи Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. Поля записи могут иметь разный тип. Общий вид описания записи: 1. Var <имя записи>: record <список полей>; end; Например: Var SOTR: record fio: string[30]; Поля date: integer; записи dolznost: string[20]; end;

8. 4. Записи. Описание записи Общий вид описания записи: 2. Type <имя типа > 8. 4. Записи. Описание записи Общий вид описания записи: 2. Type <имя типа > = record <список полей>; end; Например: Type VED = record fio: string[30]; Поля date: integer; записи zarplata: real; end; Var otd_1: array [1. . 20] of VED;

8. 5. Записи. Оператор присоединения Чтобы обратиться к полю записи, необходимо указать имя переменной 8. 5. Записи. Оператор присоединения Чтобы обратиться к полю записи, необходимо указать имя переменной и через точку – имя поля. Например: 1) write(SOTR. fio, ’ – ’, SOTR. dolznost); 2) for i: =1 to 20 do write(otd_1[i]. fio, ’ – ’, otd_1[i]. zarplata); WITH – оператор присоединения Например: 1) with SOTR do write(fio, ’ – ’, dolznost); 2) for i: =1 to 20 do with otd_1[i] do write(fio, ’ – ’, zarplata);

Пример 34. Даны массивы: S(5) – наименование изделий; C(5) – стоимость изделий; K(5) – Пример 34. Даны массивы: S(5) – наименование изделий; C(5) – стоимость изделий; K(5) – количество изделий, изготовленных за месяц; PK(5) – плановое количество изделий. Вывести список изделий, чья стоимость больше 200 и меньше 350 рублей и список изделий, по которым не выполнен план. Внешний файл: Книга 500 100 90 Блокнот 250 120 150. .

Текст программы: program pr 34; TYPE D = record S: string[15]; C: real; K, Текст программы: program pr 34; TYPE D = record S: string[15]; C: real; K, PK: byte; END; VAR A: array [1. . 5] of D; i: byte; f: text; begin assign(f, 'C: . . . LR_34. txt'); reset(f); {считывание из внешнего файла} for i: =1 to 5 do begin readln(f, A[i]. S); readln(f, A[i]. C, A[i]. K, A[i]. PK); end; close(f);

Продолжение текста программы: writeln('Список изделий от 200 до 350 рублей'); {шапка таблицы} writeln('┌───────┬──────┐'); writeln('│ Продолжение текста программы: writeln('Список изделий от 200 до 350 рублей'); {шапка таблицы} writeln('┌───────┬──────┐'); writeln('│ Наименование │ Стоимость │'); writeln('├───────┼──────┤'); {заполнение таблицы} for i: =1 to 5 do with A[i]do if (c>200) and (c<350) then writeln('│', S: 14, '│', C: 11: 2, '│'); writeln('└───────┴──────┘'); writeln('Список изделий, по которым не выполнен план'); writeln('┌──────┬──────────────┐'); writeln('│ Наимен-ние│ Кол-во по пл │'); writeln('├──────┼───────────┤');

Продолжение текста программы: for i: =1 to 5 do with A[i]do if (K<PK)then writeln('│', Продолжение текста программы: for i: =1 to 5 do with A[i]do if (K