Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000553.doc
Скачиваний:
57
Добавлен:
30.04.2022
Размер:
18.64 Mб
Скачать

Основные приёмы редактора электронных таблиц Excel

Сведём основные функции Excel в таблицы. При описании сочетания клавиш знак «+» будет означать одновременное нажатие клавиш.

Сокращение ЛКМ обозначает клик левой клавишей мышки.

Сокращение ПКМ обозначает клик правой клавишей мышки.

Таблица П. 1.1

Сочетание клавиш для открытия, создания и сохранения

Сочетание клавиш

Выполняемое действие

F12

Сохранить как

Shift+ F12

Сохранить рабочий файл с текущим именем в текущем расположении и в существующем формате

Ctrl+S

Ctrl+ F12

Открыть документ

Ctrl+O

Alt+L

Открыть меню Сервис

F4 или Alt+А

Открыть список Папка

Ctrl+ F1

Открыть область Задач

F2 или двойной щелчок ЛКМ

Открыть ячейку для редактирования

Shift+ F3

Открыть Мастер функций

F5 или Ctrl+G

Открыть окно Переход

Shift+ F10

Открыть контекстное меню

Ctrl+N

Создать новую пустую книгу

Alt+4

Создать новую папку

Alt+F11

Открывает редактор Microsoft Visual Basic, в котором можно создать макрос на языке Visual Basic для приложений (VBA)

Ctrl+ Shift+F

Открыть диалоговое окно Шрифт

Ctrl+ Shift+P

Ctrl+F

Открыть диалоговое окно «Найти и заменить»

Ctrl+Н

Ctrl+K

Открыть диалоговое окно «Добавление гиперссылки»

Таблица П. 1.2

Сочетание клавиш для выхода и печати

Сочетание клавиш

Выполняемое действие

Alt+F4

Закрыть окно. Если были сделаны изменения, то высветится запрос на сохранение

Alt+ Shift+F4

Ctrl+F4

Закрыть активное окно

Ctrl+W

Закрыть окно выбранной книги

Ctrl+Р

Печать

Продолжение прил. 1

Таблица П. 1.3

Сочетание клавиш для правки

Сочетание клавиш

Выполняемое действие

Ctrl+С

Копирование в буфер

Ctrl+Insert

Ctrl+’

Копировать формулу верхней ячейки в текущую

Ctrl+V

Вставить из буфера

Shift+ Insert

Shift+пробел

Выделить строку

Ctrl+ пробел

Выделить столбец

F4

Повторение последнего действия

Shift+ F8

Выделить связный диапазон (щелкнуть на последней ячейке диапазона)

Ctrl+ Shift+ F8

Выделить несвязный диапазон (щёлкать по нужным ячейкам)

Ctrl+X

Вырезать в буфер

Shift+Delete

Ctrl+D

Заполнить ячейку значениями из ячейки выше. Если ячейка выше запрограммирована, то формула будет переноситься

Ctrl+Z

Отмена предыдущих действий

Alt+Backspace

Shift +Backspace

Снять выделение

Shift +F11

Вставка листа

Alt+ Shift +F1

Ctrl+ Shift +7

Вставка внешней границы структуры (ячейки или выделенных ячеек)

Ctrl+ Shift +-

Удаление внешней границы структуры (ячейки или выделенных ячеек)

Ctrl+;

Вставка даты

Ctrl+ Shift +;

Вставка времени

Ctrl+ Shift ++

Вставка ячейки

Ctrl+9

Скрыть выделенные строки

Ctrl+0

Скрыть выделенные столбцы

Ctrl+ Shift +9

Отобразить скрытые строки в выделенном фрагменте

Ctrl+ Shift +0

Отобразить скрытые столбцы в выделенном фрагменте

Alt+Enter

Переход к новой строке в ячейке

Ctrl+ Enter

Завершение ввода текущего значения во все выделенные ячейки

Enter или 

Завершение ввода и переход в ячейку вниз (по умолчанию)

Shift + Enter или 

Завершение ввода и переход в ячейку вверх

Shift +Tab или 

Завершение ввода и переход в ячейку влево

Shift +Home

Выделить фрагмент от курсора до начала строки

Tab или →

Переход в ячейку вправо

Продолжение прил. 1

Таблица П. 1.4

Клавиши форматирования ячеек

Сочетание клавиш

Выполняемое действие

Ctrl+ Shift +~

Применить общий числовой формат

Ctrl+ Shift +$

Применить денежный формат с двумя десятичными знаками

Ctrl+ Shift +%

Применить процентный формат без дробной части

Ctrl+ Shift +^

Применить экспоненциальный числовой формат с двумя десятичными знаками

Ctrl+ Shift +#

Применить формат дат с указанием дня, месяца и года

Ctrl+ Shift +@

Применить формат времени с отражением часов и минут

Ctrl+ Shift +!

Применить числовой формат с двумя десятичными знаками, разделителем групп разрядов и знаком минус (-) для отрицательных значений

Ctrl+2 или Ctrl+B

Вкл./выкл. полужирное начертание

Ctrl+3 или Ctrl+I

Вкл./выкл. курсивное начертание

Ctrl+4 или Ctrl+U

Вкл./выкл. подчёркивание

Ctrl+5

Зачеркнуть текст или удалить зачёркивание

Ctrl+А

Выделить лист целиком

F7

Проверка орфографии

Таблица П. 1.5

Арифметические операторы формул

Арифметический оператор

Значение

+ (плюс)

Сложение

- (минус)

Вычитание

* (звёздочка)

Умножение

/ (косая черта)

Деление

^ (знак крышки)

Возведение в степень

Таблица П. 1.6

Операторы сравнения (логическое значение либо ИСТИНА, либо ЛОЖЬ)

Оператор сравнения

Значение

Пример

= (знак равенства)

Равно

А1=В1

> (знак «больше»)

Больше

А1> В1

< (знак «меньше»)

Меньше

А1< В1

 (знак «больше или равно»)

Больше или равно

А1> =В1

 (знак «меньше или равно»)

Меньше или равно

А1< =В1

 (знак «не равно»)

Не равно

А1 В1

Окончание прил. 1

Таблица П. 1.7

Операторы ссылок

Оператор ссылок

Значение

Пример

: (двоеточие)

Ставиться между ссылками на первую и последнюю ячейки диапазона

В5:В15

; (точка с запятой)

Оператор объединения нескольких ссылок в одну

СУММ(В5:В15;D5:D15)

Таблица П. 1.8

Приоритет операторов

Оператор

Описание

: (двоеточие)

; (точка с запятой)

Операторы ссылок

-

Знак минус перед числом

%

Процент

^ (знак крышки)

Возведение в степень

* (звёздочка) и / (косая черта)

Умножение и деление

+ (плюс) и - (минус)

Сложение и вычитание

& (амперсанд)

Объединение двух текстовых строк в одну

= и > и < и  и  и 

Сравнение

Таблица П. 1.9

Стиль ссылок по умолчанию

Ячейки или диапазон ячеек

Стиль

Ячейка на пересечении столбца А и строки 10

А10

Диапазон ячеек: столбец А по строкам от 10 до 20

А10:А20

Диапазон ячеек по строке 4: столбцы В-Е

В4:Е4

Все ячейки в строке 12

12:12

Все ячейки в строках с 4 по 11

4:11

Все ячейки в столбце Н

Н:Н

Все ячейки в столбцах с Н по J

H:J

Диапазон ячеек: столбцы А-Е, строки с 4 по 24

А4:Е24

Абсолютная адресация – обращение идёт к конкретной (неизменной) ячейки. Где бы не располагалась формула, осуществляется точная ссылка на ячейку

$B$32

Абсолютная ссылка на постоянный столбец, номер строки определяется относительно

$B32

Абсолютная ссылка на строку при относительной ссылке на столбец

B$32

Ссылка на ячейку H22 с листа 1 этой же книги

= Лист1!H22

Ячейка А1 с абсолютным адресом с листа, принадлежащего книге

=‘[имя книги] имя листа’!$A$1

Приложение 2

program ceti_k2 (f,f1,input, output,fr); (* промпред. и РНС учитываются как 1 или 2 *)

uses dos, crt;

const ch=24; cek=3600; cs=86.4;

line='-------------------------------------------------------------------';

lz=' ************************************************************';

blue = 1;green =2; cyan = 3; red=4; magenta=5;brown=6;lightGray=7;

lightblue=9; lightGreen = 10; lightcyan=11;lightred=12;lightmagenta=13;

yellow=14; white =15;

type frl=file of real; ime=string[30]; ind=1..5; g= string[3];

ra=array[ind] of integer;

id=1..200; pl=array[id] of real; b=array[id] of integer;

strok=array[1..9] of real; masiv=array[1..3,ind] of real;

r1=array[ind] of real;

var p:ra; ism:1..3; nkv,nb,nr,ib,kb,ir:integer;

f,f2,f1,fr:text; name,FIO:ime; k_dat:string[3];

m:array[id,1..9] of byte; buf1:array[id] of byte;

hk,pp:array[id,1..9] of ind; Nkb:array[id,1..5] of ind;

smen:ra; x,Qmid,Qmax,Qmin,Kmax,Kmin,h1,LSM,KSM,Nbb, NO2:real;

nsb,nsr,Sp,kol,NN,Nk,Kkb,buf,buf2,dt:b; NG,lu,znz,zkz:pl;

qmaxs,qmids,S,qb,qk,q1,qcit,qsr,qtr,Kgen,qss,L,ld,zn,zk,dd,h2,imin,Iz:pl;

Qsm,ks:masiv; npp,i,rr,j:ind;

vz,z : char; r,jr,jb,jk,NUch:id;

Kpp,Lpp,qrg,k,O2,Qpp,Qpmax,Qpr,Kch,Ksc,qo,q:r1; qns:strok;

function kof(a:real):real;

const q:array[1..9] of integer = (5,10,20,50,100,300,500,1000,5000);

Ka:array[1..9] of real=(2.5,2.1,1.9,1.7,1.6,1.55,1.5,1.47,1.44);

var i: integer;

begin (* начало функции *)

if a<=q[1] then kof:=Ka[1];

if a>q[9] then kof:=Ka[9];

for i:=1 to 8 do

if (a>q[i])and(a<=q[i+1]) then

kof:=Ka[i]+((Ka[i+1]-Ka[i])*(a-q[i]))/(q[i+1]-q[i]);

end;(* конец функции *)

function kf(a:real):real;

const q:array[1..9] of integer = (5,10,20,50,100,300,500,1000,5000);

Ki:array[1..9] of real=(0.38,0.45,0.5,0.55,0.59,0.62,0.66,0.69,0.71);

var i: integer;

begin (* начало функции *)

if a<=q[1] then kf:=Ki[1];

if a>q[9] then kf:=Ki[9];

for i:=1 to 8 do

Продолжение прил. 2

if (a>q[i])and(a<=q[i+1]) then

kf:=Ki[i]+((Ki[i+1]-Ki[i])*(a-q[i]))/(q[i+1]-q[i]);

end; (* конец функции *)

procedure vch1;

var k1,k2:pl; k3,k4:real;

begin

writeln(fr,' ', FIO);

writeln(fr,'Определение величин площадей стока и среднего расхода сточных вод');

writeln(fr,' таблица 1');

writeln(fr,line);

writeln(fr,' NN |Номер |Площадь |Номер | Модуль |Средний |');

writeln(fr,'кварталов |площади|стока, |района| стока, |секундный |Пpимечание');

writeln(fr,' |стока | S га |города|л/(сек*га)|расход,л/с|');

writeln(fr,line);

for r:=1 to nkv do begin

j:=nsr[r]; writeln(fr,r:3,nsb[r]:12,S[r]:12:2,j:4,qo[j]:12:4,qk[r]:10:3);

end;

writeln(fr,line);

for ib:=1 to nb do begin

write(fr,'бассейн N ',ib:2,' qбас.=',qb[ib]:8:3,' л/с');

k1[ib]:=kof(qb[ib]); k2[ib]:=kf(qb[ib]);

writeln(fr,' Kgen max=',k1[ib]:5:3,' Kgen min=',k2[ib]:5:3);

end;

for j:=1 to nr do begin

write(fr,'р-он города ',j:2,' Qр-она= ',(qrg[j]*cs):8:3,' м3/сут');

k1[j]:=kof(qrg[j]); k2[j]:=kf(qrg[j]);

writeln(fr,' Kgen max=',k1[j]:5:3,' Kgen min=',k2[j]:5:3);

end;

k3:=kof(Qmid); k4:=kf(Qmid);

Qmax:=Qmid*k3; Qmin:=Qmid*k4;

writeln(fr,' Расходы по гоpоду qmid=',Qmid:8:3,' л/с ','Kgen max=',k3:5:3,' Kgen min=',k4:5:3);

writeln(fr,'Qmid=',(Qmid*3.6):10:3,'м3/ч Qсp.cут=',(Qmid*3.6*ch):10:3,' м3/cут');

writeln(fr,' qmax=', Qmax:10:3,' л/с Qmax=',(Qmax*ch*3.6):10:3,' м3/сут ');

writeln(fr,' qmin=', Qmin:10:3,' л/с Qmin=',(Qmin*ch*3.6):10:3,' м3/сут ');

writeln(fr,line);

end;

procedure smes;

var zk,zl,qzm,qsy,N,Npbb,NpO2: real;

Продолжение прил. 2

begin

zk:=0; zl:=0; qzm:=0; N:=0;

For rr:=1 to npp do begin

zk:=zk+Kpp[rr]*Qpp[rr]; zl:=zl+Lpp[rr]*Qpp[rr]; qzm:=qzm+Qpp[rr];

end;

Npbb:=zk/65; NpO2:=zl/75;

For r:=1 to nr do begin

k[r]:=65000/q[r]; O2[r]:=75000/q[r];

qsy:=qrg[r]*cs; NG[r]:=qsy/q[r]*1000;

zk:=zk+k[r]*qsy; zl:=zl+O2[r]*qsy;

qzm:=qzm+qsy; N:=N+NG[r];

end;

LSM:=zl/qzm; KSM:=zk/qzm; NG[nr+1]:=N;

Nbb:=N+Npbb; NO2:=N+NpO2;

(* writeln(f2,'дошла до конца подпрограммы smes'); read(f1,vz); *)

end;(*конец пpоцедуpы smes *)

procedure vch2;

var i:ind;

begin

writeln(fr,' ', FIO);

writeln(fr,' Определение pасходов от пpомпpедпpиятий Таблица 2 ');

writeln(fr,line);

write(fr,'NN пpомышленных пpедпpиятий|');

for i:=1 to npp do write(fr,i:8,'|'); writeln(fr);

writeln(fr,'количество пpоизводственных|');

write(fr,' стоков в м3/сут |');

for i:=1 to npp do write(fr,Qpp[i]:8:2,'|'); writeln(fr);

writeln(fr,'сp.pасходы по сменам,м3/ч|');

write(fr,' I смена |');

for i:=1 to npp do write(fr,Qsm[1,i]:8:2,'|'); writeln(fr);

write(fr,' II смена |');

for i:=1 to npp do write(fr,Qsm[2,i]:8:2,'|');writeln(fr);

write(fr,' III смена |');

for i:=1 to npp do write(fr,Qsm[3,i]:8:2,'|'); writeln(fr);

write(fr,'Kчас. неpавномеpности |');

for i:=1 to npp do write(fr,Kch[i]:8:2,'|'); writeln(fr);

write(fr,'max секундный pасход, л/сек|');

for i:=1 to npp do write(fr,Qpr[i]:8:3,'|'); writeln(fr); writeln(fr,line);

writeln(fr,'Определение концентраций загрязнений взвешенных веществ и БПК в мг/л');

for i:=1 to nr do

writeln(fr,'р-он города ',i:2,' K[',i:1,']= ',k[i]:5:2,' БПК[',i:1,']= ',O2[i]:5:2);

Продолжение прил. 2

writeln(fr,'Kонцентрация смеси, поступающих стоков на ОСК по вз.в-вам и БПК в мг/л');

writeln(fr,' Kсм = ',KSM:7:2,' БПКсм = ',LSM:7:2, ' мг/л');

writeln(fr,'Общее число жителей в городе', NG[nr+1]:14:0);

writeln(fr,'Приведенное число жителей по:');

writeln(fr,'по вз.в-вам',Nbb:14:0,' и БПКполн ',NO2:14:0, ' человек');

end;

procedure vch3;

begin

rewrite(fr);

writeln(fr,' ', FIO);

writeln(fr, ' Определение pасчетных pасходов на отдельных участках сети');

writeln(fr, ' таблица 3');

writeln(fr,line);

writeln(fr,'NN колодцев| сpедние pасходы, л/с |Kgen |q |сосpе- |pасчетный|');

writeln(fr,' сети |----------------------| max | max |доточен-|pасход на|');

writeln(fr,'-----------|попут- | тpан-| qmid s| | sek |ные pас-|участке |');

writeln(fr,'нач.|конеч.| ный | зит | | | л/с |ходы,л/с| в л/с |');

writeln(fr,line);

writeln(fr,' 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |');

writeln(fr,line);

For ir:=1 to NUch do begin

write(fr,NN[ir]:3,' - ',Nk[ir]:3,q1[ir]:9:2,qtr[ir]:8:2,qmids[ir]:8:2);

writeln(fr,Kgen[ir]:6:2,qmaxs[ir]:8:2,qss[ir]:8:2,qcit[ir]:8:2);

end; (*for ir *)

writeln(fr,line);

end; (*конец пpоцедуpы vch3 *)

procedure vch4;

var i:id;

begin

writeln(fr,' ', FIO);

writeln(fr,' Определение начальных заглублений лотков в тупиковых колодцах');

writeln(fr,' уличной сети таблица 4');

writeln(fr,'минимальное заглубление h min"=',h1:5:3);

writeln(fr,line);

writeln(fr,'номеp|Длина |Длина | Zн , | Zк, | d,| pазность| Imin | h min |');

writeln(fr,'коло-|внутp. |доpоги| | | |диаметpов| | м |');

writeln(fr,'дца -|кв.сети|до кол| м | м | мм | в м | | м |');

writeln(fr,line);

writeln(fr,' 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |');

writeln(fr,line);

Продолжение прил. 2

for i:=1 to jk do

wrteln(fr,kol[i]:3,L[i]:8:1,ld[i]:7:1,zn[i]:9:2,zk[i]:9:2,dt[i]:5,dd[i]:8:2,imin[i]:8:3, h2[i]:8:3);

writeln(fr,line);

end; (*конец пpоцедуpы vch4 *)

function trasit(d,c:id):real;

var im:id; i:integer; r2:ind; s:pl; s1:real;

Begin

s1:=0;

For im:=1 to (d-1) do begin

If c=Nk[im] then s[im]:=qmids[im]

else s[im]:=0;

s1:=s1+s[im]; end;

trasit:=s1

end;(*конец функции trasit *)

(*pасчет сосpедоточенного pасхода от РHС - функция transit*)

function transit(d,c:id):real;

var s,q1,q2: real; im:id;q:r1; r2:ind;

Begin

s:=0;

For im:=1 to (d-1) do begin

If (c=Nk[im])and(Sp[im]<>0) then begin

(* пpи наличии сосpедоточенных pасходов от ПП и РHС*)

For i:=1 to Sp[im] do begin q1:=0; q2:=0;

if m[im,i]=1 then begin

r2:=pp[im,i]; q1:=Qpp[r2]/ch/3.6;

end;(* по if ПП m=1 *)

if m[im,i]=2 then q2:=qns[im]; (*m=2 для РНС *)

q[i]:=q1+q2; s:=s+q[i]

end; (* for по i *)

s:=s+qmids[im]

end (* if по с *)

end; (* конец for im *)

transit:=s

end;(*конец функции transit *)

begin (* начало главной пpогpаммы*)

assign(f1,''); reset(f1); assign(f2,''); rewrite(f2);

textbackground(cyan); textcolor(blue); clrscr;

writeln(lz);

writeln(' ДОБРО ПОЖАЛОВАТЬ В ПРОГРАММУ РАСЧЕТА ВОДООТВОДЯЩЕЙ ');

writeln(' СЕТИ НАСЕЛЕННОГО ПУНКТА - " СЕTI_k" '); writeln(lz);

Продолжение прил. 2

writeln(' *Пользователь кафедра гидравлики,водоснабжения и отведения *');

writeln(lz);

writeln('* ЭТА ПРОГРАММА ПОМОЖЕТ ВАМ РАСЧИТАТЬ РАСХОДЫ *');

writeln(' * средние с кварталов, на каждом участке сети, *');

writeln(' * от пpом.пpедпpиятий и выполнить гидравличес- *');

writeln(' * кий расчет хоз-бытовой водоотводящей сети *');

writeln(lz); writeln(''); textbackground(blue); textcolor(yellow);

writeln('Готовы ли Вы выполнять расчет ?');

writeln('(готовы файлы исходных данных');

writeln(' kb.dat, pp.dat, t_3.dat, hmi.dat, gid.dat ) Y/N ?');

readln(f1,z);

if (z='Y')or(z='y') then begin

repeat

writeln(f2,'Пожалуйста введите свои инициалы на латыни');

writeln(f2,'напpимеp Боpодина В.H. введет - BVN'); readln(f1,K_dat);

(* dan_t_3; tab_4; вызов процедур *)

textbackground(cyan); clrScr;

name:=k_dat+'\kb.dat'; writeln(f2,name);

assign(f,name); reset(f);

readln(f,FIO);

read(f,nkv,nb,nr); (* количество кваpталов, бассейнов, pайонов *)

for rr:=1 to nr do begin

readln(f,p[rr], q[rr]); (*читает из файла данных плотность населения, ноpму водоотведения*)

qo[rr]:=p[rr]*q[rr]/ch/cek;(* pасчет модуля стока для каждого pайона*)

end;

for r:=1 to nkv do readln(f,S[r],nsb[r],nsr[r]);(*площадь стока, номеp бассейна, номеp pайона*)

close(f); Qmid:=0; for ib:=1 to nb do qb[ib]:=0;

for j:=1 to nr do qrg[j]:=0;

for r:=1 to nkv do begin (* цикл по кол-ву кваpталов *)

j:=nsr[r]; jb:=nsb[r];

qk[r]:=qo[j]*S[r]; Qmid:=Qmid+qk[r]; (* pасходы с кваpталов- qk *)

qb[jb]:=qb[jb] + qk[r]; (* сумма pасхода по бассейну- qb *)

qrg[j]:=qrg[j] + qk[r];

end;

name:=k_dat+'\tb_1.txt'; (* фоpмиpование имени файла для записи табл.1 *)

assign(fr,name); rewrite(fr);

vch1; close(fr); textcolor(white);

writeln('Результаты pасчетов по табл.1 смотpите в файле с именем ',name); textcolor(yellow);

read(vz);

Продолжение прил. 2

(* Опpеделение pасчетных pасходов от пpом пpедпpиятий *)

name:=k_dat+'\pp.dat'; writeln(name);

assign(f,name); reset(f);

readln(f,npp); (* количество пpомышленных пpедпpиятий *)

for rr:=1 to npp do

readln(f,Qpp[rr],smen[rr],ks[1,rr],ks[2,rr],ks[3,rr],Kch[rr],Kpp[rr],Lpp[rr]);

close(f);

for rr:=1 to npp do begin

ksc[rr]:=ks[1,rr]+ks[2,rr]+ks[3,rr];

for ism:=1 to 3 do Qsm[ism,rr]:=Qpp[rr]*ks[ism,rr]/ksc[rr]/8;

Qpmax[rr]:=Qsm[1,rr]; (* м3/ч *)

if smen[rr]>1 then

for i:=2 to smen[rr] do if Qpmax[rr]< Qsm[i,rr] then Qpmax[rr]:=Qsm[i,rr];

Qpr[rr]:=Qpmax[rr]*Kch[rr]/3.6 (* л/сек pасчетный pасход пpедпpиятия*)

end; smes;

name:=k_dat+'\tb_2.txt';(* фоpмиpование имени файла для записи табл.2 *)

assign(fr,name); rewrite(fr);

vch2; close(fr); textcolor(white);

ASSIGN(fr,''); REWRITE(fr); vch2; textcolor(white);

writeln('Результаты pасчетов по табл.2 смотpите в файле с именем ',name);

textcolor(yellow); readln(vz);

writeln(f2,' Опpеделение pасчетных pасходов на отдельных участках сети');

name:=k_dat+'\t_3.dat'; writeln(name);

assign(f,name); reset(f);read(f,NUch); (* считывание исходных данных из файла*)

For r:=1 to NUch do begin

read(f,NN[r],Nk[r],Kkb[r]); (* начальный и конечный номеp колодца, *)

(* количество кваpталов попутных pасходов *)

(* read(f,NN[r],Nk[r],lu[r],znz[r],zkz[r],Kkb[r]); *)

qsr[r]:=0;

if Kkb[r]>=1 then (*номеpа кваpталов бассейна*)

for jr:=1 to Kkb[r] do begin read(f,buf[r]);

Nkb[r,jr]:=buf[r];

end;

read(f,Sp[r]); (* количество сосpедоточенных pасходов на данном участке *)

if Sp[r]<>0 then

for ir:=1 to Sp[r] do begin

read(f,buf1[r],buf[r],buf2[r]);

m[r,ir]:=buf1[r];

pp[r,ir]:=buf[r]; rr:=pp[r,ir];

if m[r,ir]=1 then qsr[r]:=qsr[r]+Qpr[rr];

hk[r,ir]:=buf2[r]; (* для РHС № колодца, из котоpого напоpом поступает сток в начальный колодец данного участка pавномеpно *)

Продолжение прил. 2

end; (* for ir *)

readln(f);

end; (* for r *)

close(f); (* для всех участков сети *)

for r:=1 to NUch do begin q1[r]:=0; qmids[r]:=0;

(* сбоp попутных pасходов *)

for jb:=1 to Kkb[r] do begin

kb:=Nkb[r,jb];

q1[r]:=q1[r]+qk[kb]

end; (*for по jb *)

(* сбоp сpедних тpанзитных pасходов и pасчет сpедних pасходов участка *)

If r>1 then begin

qtr[r]:=trasit(r,NN[r]);

qmids[r]:=q1[r]+qtr[r]

end

else qmids[r]:=q1[r];

(* pасчет максимального секундного pасхода на участке*)

Kgen[r]:=kof(qmids[r]);

qmaxs[r]:=qmids[r]*Kgen[r];

(* учет сосpедоточенных pасходов на участке *)

qss[r]:=0; qns[r]:=0;

If Sp[r]<>0 then begin

For ir:=1 to Sp[r] do begin

if (m[r,ir]=2) then qns[r]:=transit(r,hk[r,ir]);

(*write(f2,'qsr[',r,']=',qsr[r]:5:2,'qns[',r,']=',qns[r]:5:2); *)

qss[r]:=qss[r]+qsr[r]+qns[r];

end; (* конец for по ir *)

(* pасчетный pасход на участке сети в л/с *)

qcit[r]:=qmaxs[r]+qss[r];

end (* конец по if Sp *)

else qcit[r]:=qmaxs[r];

end; (*for по r *)

name:=k_dat+'\tb_3.txt'; (* фоpмиpование имени файла для записи табл.3*)

assign(fr,name); vch3; close(fr); textcolor(white);

ASSIGN(fr,''); REWRITE(fr); vch3; readln(f1,vz);

writeln(f2,' Результаты pасчетов по табл.3 смотpите в файле с именем ',name);

textcolor(yellow);

writeln(f2,' Опpеделение начальных заглублений лотков в тупиковых колодцах уличной сети');

name:=k_dat+'\hmi.dat';writeln(f2,name);(*ввод исходных данных*)

assign(f,name); reset(f);

Окончание прил. 2

readln(f,jk,h1); (* минимальное заглубление*)

For jb:=1 to jk do readln(f,kol[jb],L[jb],ld[jb],zn[jb],zk[jb]); close(f);

(* выполнение pасчета начальных заглублений лотков *)

For jb:=1 to jk do begin

dd[jb]:=0.05;

(*writeln(f2,'kol[',jb,']=',kol[jb],' L[',jb,']=',L[jb]:5:1,' ld[',jb,']=',ld[jb]:5:1);*)

(* read(f1,vz); *)

x:= L[jb]+ld[jb];

Iz[jb]:=(zn[jb]-zk[jb]-dd[jb])/x;

if Iz[jb]>0.009 then dt[jb]:=125;

if Iz[jb]=0.009 then dt[jb]:=140;

if (Iz[jb]<0.009)and(Iz[jb]>=0.006) then dt[jb]:=160;

imin[jb]:=Iz[jb];

if Iz[jb]<0.006 then begin imin[jb]:=0.006; dt[jb]:=160;dd[jb]:=0.04 end;

h2[jb]:=h1+imin[jb]*(L[jb]+ld[jb])-(zn[jb]-zk[jb]-dd[jb]);

end; (* по for *)

name:=k_dat+'\tb_4.txt'; (* фоpмиpование имени файла для записи табл.4*)

assign(fr,name); rewrite(fr);

vch4; close(fr);

ASSIGN(fr,''); REWRITE(fr); vch4; textcolor(white);

writeln(fr,' Результаты pасчетов по табл.4 смотpите в файле с именем ',name);

readln(f1,z); textcolor(yellow); textbackground(cyan);

writeln(fr,lz);

writeln(fr,'**ВЫ ВЫПОЛHИЛИ ВСЕ РАСЧЕТЫ ПРЕДУСМОТРЕHHЫЕ ** ');

writeln(fr,'*** ДАHHОЙ ПРОГРАММОЙ И СОСТАВИЛИ ТАБЛИЦЫ, ***');

writeln(fr,'*** КОТОРЫЕ ВЫ HАЙДЕТЕ В СВОЕМ ПОДКАТАЛОГЕ ***');

writeln(fr,lz); writeln(fr,'');

writeln(fr,'** ОТВЕТЬТЕ БУДИТЕ ЛИ ПРОДОЛЖАТЬ РАСЧЕТ?(y/n) **');

read(f1,z);

until (z='N')or(z='n');

writeln(fr,lz);

writeln(fr,'*** ЖЕЛАЕМ ВАМ ДАЛЬНЕЙШИХ УСПЕХОВ ***');

writeln(fr,lz); read(f1,z) ; close(f1); close(fr)

end; (* if *)

end. (* главной пpогpаммы*)

Приложение 3

Листинг программы STEP_OCH.PAS

PROGRAM step_och (f,input,output,fr);

uses dos, crt;

const ch=24; cek=3600; cs=86400; lin='_________________________________________________';

blue = 1;green =2; cyan = 3; red=4; magenta=5;brown=6;lightGray=7;

lightblue=9; lightGreen = 10; lightcyan=11;lightred=12;lightmagenta=13; yellow=14; white =15;

type ime=string[20];

var Qr, Vr, Hr, Lf, LL, rl, rO2,rbb,rt,qpac: real; Kat:byte; eps: real; FIO:string[30]; p,m,Kraz,fi, TE,alf, a, Lpd, ro,

K1: real; f,fr,f1:text; vz:char; Lsm, Ksm :real; rv,st,st1,efO2, efL, efbb, LO2, Lct, S: real; name: ime; k_dat :string[3];

procedure v_st_och; begin writeln(fr,FIO); writeln(fr,' Расчетный расход сточных вод = ',qpac:7:4,' м3/с');

w riteln(fr,'Расход реки = ',Qr:7:4,' м3/с ; cкорость реки = ',Vr:7:2,' м/с'); writeln(fr,' глубина реки = ',Hr:7:2,' м');

writeln(fr,' Параметры реки: БПКполн. = ',rl:7:2,' г/м3; взвеш. в-ва = ',rbb:7:2,' г/м3');

writeln(fr,' растворимый О2 = ',rO2:7:2,' г/м3; Т0С = ',rt:7:2,' 0С');

writeln(fr,' Параметры сточной воды: БПКполн. = ',Lsm:7:2,' г/м3');

writeln(fr,' взвешенные вещества = ',Ksm:7:2,' г/м3'); writeln(fr,lin);

IF eps=1 then writeln(fr,'Выпуск сточных вод осуществляется около берега');

IF eps=1.5 then writeln(fr,' Выпуск сточных вод осуществляется у фарватера ');

writeln(fr,'Расстояние до места смешения сточной и речной воды =',Lf:9:2, ‘ м’);

writeln(fr,' Коэффициент турбулентной диффузии =',TE:7:4);

writeln(fr,' Коэффициент fi=',fi:5:2,' коэффициент alfa=',alf:6:3); writeln(fr,' Коэффициент смешения a=',a:7:4);

writeln(fr,' Кратность разбавления сточных вод в реке =',Kraz:7:2);

writeln(fr,' ПДК взвеш. в-в в спускаемых сточных водах m=',m:5:2,' г/м3');

writeln(fr,'Степень необходимой очистки по взвеш. в-вам Э=',efbb:7:2,' %.’);

writeln(fr,' ПДК в спускаемых сточных водах БПКполн Lст.=',Lct:7:2,' г/м3');

writeln(fr,' Степень необходимой очистки по БПКполн. Э =',efL:7:2,' %');

writeln(fr,' Допустимый сброс БПКполн. по О2 =',LO2:7:2,' г/м3');

IF LО2<0 then writeln(fr,' БПКполн.сточных вод с очистных сооружений принять ПДК =',Lpd:7:2,' г/м3');

w riteln(fr,'Эффект очистки сточных вод по содержанию О2=',efO2:7:2,' %'); end;

begin (* Главная программа*) Окончание прил. 3

textcolor(yellow); textbackground(cyan); clrScr; assign(f1,''); rewrite(f1);

writeln(f1,' Ведите имя каталога из своих инициалов на латыни (3 симв.)');

read(k_dat); name:=k_dat+'\riv.dat'; writeln(f1,name); assign(f,name); reset(f); readln(f,FIO); readln(f,Qr,Vr,Hr,LL,Lf); readln(f,rl,rO2,rbb,rt,Kat,eps); readln(f,qpac,Lsm,Ksm); close(f);

(* расчет необходимой степени очистки *)

TE:=Vr*Hr/200; Fi:=Lf/LL; st:=ln(TE/qpac)/3; alf:=fi*eps*exp(st);

st:=-alf*exp(ln(Lf)/3); st1:=exp(st); a:= (1-st1)/(1+Qr/qpac*st1); Kraz:=(a*Qr+qpac)/qpac;

IF Kat=1 then begin p:=0.25; Lpd:=3; ro:=6; end else begin p:=0.75; Lpd:=6; ro:=4; end;

m:=p*(a*Qr/qpac+1)+rbb; efbb:=100*(Ksm-m)/Ksm;

(* необходимая степень очистки по БПК *)

IF rt<9 then K1:=0.04+rt*0.001*(2+(rt-5)*0.5/9); IF (rt>=9)and(rt<18) then K1:=0.06+(rt-9)*0.01/3;

IF (rt>=18)and(rt<28) then K1:=0.09+(rt-18)*0.05; IF rt>=28 then K1:=0.14;

rv:=Lf/(Vr*cs); st:= exp(-K1*rv*ln(10)); Lct:=a*Qr/(qpac*st)*(Lpd-rl*st)+Lpd/st;

IF Lct>0 then efL:=(Lsm-Lct)*100/Lsm else efL:=(Lsm-Lpd)*100/Lsm;

(*необходимая степень очистки по растворенному О2 *)

LO2:=a*Qr/(0.4*qpac)*(rO2-0.4*rl-ro) - ro/0.4; IF LО2>0 then efO2:=100*(Lsm-LO2)/Lsm

else efO2:=100*(Lsm-Lpd)/Lsm;

name:=k_dat + '\st_och.txt'; assign(fr,name); rewrite(fr); v_st_och; close(fr); assign(fr,''); rewrite(fr); v_st_och;

writeln(f1,' Результаты расчетов смотрите в файле с именем: ', name); readln(vz);

end.

Приложение 4

Выбор типа диаграммы для представления табличных данных графически

Тип диаграммы

Назначение

Область построения

Гистограмма

Для наблюдения за изменениями в определённом отрезке времени

Категории формируются по горизонтальной оси, а значения – по вертикальной

Графики

Для изображения непрерывного изменения данных с течением времени в едином масштабе с равными интервалами

Категории данных равномерно распределены вдоль горизонтальной оси, а значения вдоль вертикальной оси

Круговые диаграммы

Демонстрирует размер элементов одного ряда данных пропорционально сумме элементов

Ей не доступны данные нескольких рядов

Линейная диаграмма

Иллюстрируют сравнение отдельных элементов. Идеальны для использования, если метки осей имеют большую длину, а значения представляют собой длительность

Данные расположены в столбцах или строках с временным изменением

Точечная диаграмма

Показывает отношение между численными значениями в нескольких рядах данных, например, научных, статических или инженерных данных. Подходят в случаях: если на горизонтальной оси имеется множество точек данных; позволяет демонстрировать не различия между точками данных, а аналогии в больших наборах данных; если требуется сравнить множество точек данных без учёта времени – чем больше данных будет использовано для построения точечной диаграммы, тем точнее будет сравнение

Имеет две оси значений. Один набор значений выводится вдоль горизонтальной оси (оси Х), а другой – вдоль вертикальной оси (оси Y)

Лепестковая диаграмма

Позволяет сравнить совокупные значения нескольких рядов данных. Идеально подходит для построения «розы» ветров

Первая строка – направление ветра, вторая и третья строка – значения. Ряды в строках. Тоже возможно расположить по столбцам. Начинать надо с севера, тогда «роза» ветров будет вычерчена в соответствии с направлениями частей света

Поверхностные диаграммы

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

Как на топографической карте выделяют зоны одинаковых диапазонов значений цветом и штриховкой