Среда программирования Qbasic. Решение задач из курса математики, графические возможности

Специфические особенности обозначения шагов для схемы линейной алгоритмической конструкции. Библиотека программ - комплекс разработанных программных приложений, которые реализуют типовые функции и вычислительные методы. Общая форма записи оператора.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 31.05.2019
Размер файла 276,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Введение

С развитием и совершенствованием ЭВМ тесно связано появление средств программирования. Современный мир богат множеством прикладных программ, в основе которых лежит особый инструмент обработки данных. Благодаря этому тема: «Среда программирования Qbasic. Решение задач из курса математики, графические возможности» актуальна.

Цель моей курсовой работы:

- освоить навыки построения блок- схем и написание программ в среде QBASIC;

- научиться использовать возможности среды программирования для решения задач;

- усвоить алгоритм математических и графических задач.

Задачи курсовой работы:

- на основе теоретического освоения литературы самостоятельно изучить основные команды и операторы языка программирования;

- разработать программы математического и экономического характера;

- написать алгоритм решения задач.

Работа имеет следующую структуру:

– содержание;

– введение, в котором подчеркивается актуальность и значение темы, формулируются цели и задачи работы;

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

– заключение, в котором содержатся выводы;

– список литературы;

– приложения.

Для машин первого поколения средства программирования составлялись в машинных кодах. Это был трудоемкий процесс, поскольку программисту самому приходилось распределять память под программу, исходные данные и результаты. Разобраться в такой программе, модифицировать ее было практически невозможно. Сейчас существует большое количество алгоритмических языков, которым свойственны как общие, так и отличительные черты. Это Фортран, Бейсик, Паскаль и др. На их примере можно наглядно увидеть те характерные особенности, которые присущи программированию на алгоритмических языках.

Наиболее популярной средой программирования является Qbasic, благодаря удобному интерфейсу и представлению пользователю элементарных возможностей.

1. Теоретические основы разрабатываемой темы

Бейсик (BASIC) - это сокращение английских слов Beginners All-purpose Symbolic Instruction Code, что в переводе означает “многоцелевой язык символических инструкций для начинающих”. Он был разработан профессорами Дартмутского колледжа (США) Т. Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его популярность повысилась с появлением персональных компьютеров, где он стал одним из основных языков программирования. Существует множество версий языка Бейсик и все они имеют особенности. В каждой из них можно выделить общее подмножество, в котором отражены характерные (стандартные) грамматика, синтаксис и семантика языка.

1.1 Основы алгоритмизации

Алгоритм - ключевое понятие информатики, это то, без чего её просто не может быть.

Доналд Кнут, автор всемирно известного сборника «Искусство программирования» считает, что слово «алгоритм» произошло от имени автора известного арабского учебника по математике - Мухаммед бен Мусса ал - Хорезми (Abu Ja'far Mohammed ibn Musa al-Khowarizmi).

Алгоритм должен иметь точку входа - «начало» и точку окончания выполнения команд «конец», и так как любой алгоритм пишется для исполнителя, то этому исполнителю нужно сообщить (ввести) значения чисел mиn, позволяющих начать работу исполнителя корректно.

На структурных схемах ввод или вывод информации указывается в фигуре «параллелограмм».

Графически, т.е. с помощью структурной схемы, алгоритм Евклида отображён на рисунке 1.

Рисунок 1. Структурная схема алгоритма Евклида

Как мы можем заметить, в структурной схеме появился ещё участок «Отображение r»-это вывод результата исполнения алгоритма в понятной для человека форме. Таким образом, алгоритм Евклида строится по классической схеме: ввод исходных данных-обработка-вывод результатов.

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

Линейная конструкция предполагает процесс выполнения последовательных шагов, причём данная последовательность не изменяется.

Рисунок 2. Обозначение шагов для схемы линейной алгоритмической конструкции

Разветвляющаяся конструкция предполагает выбор шага для выполнения на основе проверки истинности какого-либо условия.

Рисунок 3. Обозначение шагов для схемы разветвляющейся алгоритмической конструкции

Циклическая конструкция описывает некоторый процесс, который многократно повторяется.

Рисунок 4. Структурная схема циклического алгоритма с фиксированным числом повторений

1.2 Системы и технологии программирования

Особое место в ПО компьютера занимают системы программирования. Как правило, система программирования включает в себя три основных компонента:

1) язык программирования - язык, на котором пишутся программы;

2) транслятор (интерпретатор или компилятор )- программа, «переводящая» язык программирования на язык компьютера;

3) библиотеку программ - заранее разработанные программы, реализующие типовые функции и вычислительные методы. В настоящие время таких типовых программ в мире насчитывается несколько тысяч.

В конце 1950-х гг. было создано несколько алгоритмических языков, самыми известными из которых являлись Algol-60 и FORTRAN-IV. Это были языки программирования, которые позволяли описывать алгоритмы без привязки к конкретной модели ЭВМ и использовали элементы естественного языка - английские слова и символы.

Первые алгоритмические языки были в основном ориентированы на решение математических, инженерно-технических задач, поскольку именно в этих областях компьютерная техника нашла поначалу самое серьёзное применение. Впоследствии появились аналогичные языки для решения экономических задач, задач управления технологическими процессами, проектирование, т.е. они, были ориентированы на решение проблем в конкретных областях. Именно это и обусловило их общее название-проблемно-ориентированные.

По мере сужения их специализация соответственно росло число языков программирования, сначала оно измерялось десятками, потом - сотнями. Это породило новые проблемы совместимости программ на разных языках программирования при разработке больших систем, и возникла идея создания универсальных языков программирования.

Универсальные языки наиболее удобны в использовании, поскольку максимально приближены к естественному человеческому языку, и, конечно, процесс компиляции для них достаточно сложен. Языки этого класса(Basic, Си, Pascal, Ada и др.) объединяет одно - они шаг за шагом последовательно реализуют алгоритм, поэтому их называют алгоритмическими, что представляется не совсем корректным, поскольку любое программирование связанно с реализацией того или иного алгоритма. Более правильным представляется называть эти языки процедурно-ориентированными и также связанную с ними технологию технологией программирования.

Весь процесс реализации конкретной задачи на компьютере, с определённой степенью условности, можно разделить на 10 этапов:

1. Содержательная постановка задачи.

2. Математическая постановка задачи.

3. Формализация математической постановки - выбор метода решения.

4. Разработка алгоритма решения задачи.

5. Разработка ПО, реализующего алгоритм.

6. Отладка ПО (выявление и устранение ошибок).

7. Тестирование ПО и анализ результатов.

8. Проведение доработок по итогам тестирования.

9. Разработка технической документации(инструкций) для пользователей.

10. Сдача в эксплуатацию.

Алгоритм, записанный на языке программирования, называется программой. Каждый шаг алгоритма представлен некоторой командой. Команды в программе оформляются по правилам языка программирования и называются операторами языка программирования. Заметим, что для любой программы характерен естественный порядок исполнения команд, т.е. которые не выполняют непосредственно обработку информации, а управляет работой программы.

Любая программа выполняется в результате её трансляции-перевода записи операторов на язык компьютера. Каждый оператор в программе после трансляции будет представлен набором кодов команд. Эти команды выполняются в оперативной памяти компьютера.

Операторы языка программирования позволяют преступить к написанию простейших программ с использованием типовых алгоритмических конструкций.

Основные операторы, реализующие типовые алгоритмические конструкции. Оператор присваивания. Допустим, есть математическое выражение Y=.

Оператор присваивания на языке Basic будет иметь следующий вид:

Y=SQR(6.25*x2+2.12*x+0.123) (1)

Этот оператор работает так: результат вычисления выражения в правой части требуется присвоить в качестве значения переменной Y. Именно потому, что данный оператор выполняет функции не только вычисления, но и присваивания, в левой его части не может быть выражения, а только имя одной переменной-ячейки памяти компьютера, в которую производятся запись результата вычисления.

Оператор ввода данных. Этот оператор размещает данные в оперативной памяти компьютера. Имена переменных, записанных в операторе INPUTв произвольном порядке, получают значения, вводимые с клавиатуры в этом же порядке, т.е. первой переменной соответствует первое введённое значение, второй-второе и т.д. Оператор ввода в языке Basicимеет следующий формат:

INPUT<сообщение>;x1,x2,x3,….,xn. (2)

Здесьx1,x2,x3,….,xn-имена переменных, которые получают значения, вводимые с клавиатуры в порядке их следования. Иначе их называют списком ввода; сообщение-это текстовая константа, уточняющая, напоминающая человеку о его действиях.

Оператор вывода. Этот оператор предназначен для вывода результатов или на экран монитора или на принтер. Общий вид(формат) оператора вывода в языке Basic таков:

PRINTx1,x2,x3,….,xn (3)

где x1,x2,x3,….,xn- имена переменных, содержимое которых выводится на экран монитора в порядке их следования. Иначе их называют списком вывода.

Существуют два вида операторов (команд) перехода. Оператор безусловного перехода передаёт управление к другой команде всегда, вне зависимости от каких бы то ни было условий.

Оператор условного перехода передает управление только в случае истинности некоторого условия, а в противном случае-просто игнорируется.

Общий вид (формат) оператора условного перехода в языке Basic таков: IF<условие>THEN<оператор или группа операторов>

[ELSE<оператор или группа операторов>]

В качестве условия могут быть использованы либо операции сравнения (=,<>,>,>=,<,<=), либо логические выражения. Смысл этого оператора состоит в том, что если условие истинно, то выполняется оператор или группа операторов, следующих за словом THEN, а если условие ложно, то выполняется оператор или группа операторов, следующих за словом ELSE(иначе). Для реализации циклических алгоритмических конструкций используется оператор цикла, в языке Basic это «связка» операторов FOR

и NEXT. Первый из них является начальным и главным оператором. Он открывает собой тела цикла, т. е. группу операторов, которые будут выполняться фиксированное число раз.

Формат оператора FOR таков:

FORI=IначTOIкон[STEP] (4)

где I- счётчик цикла;Iнач - начальное значение счётчика цикла; Iкон - конечное значение счётчика цикла; - шаг изменения счётчика цикла.

1.3 Массивы

Многие задачи, решаемые на ПЭВМ, связаны с обработкой больших объёмов информации. В таких случаях данные удобно некоторым образом упорядочивать, т.е. создавать массивы.

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

Существуют одномерные и двумерные массивы.

Одномерный массив - соответствует линейной таблице, его элементы обозначаются переменной с индексом А(1), К3(1).

Двумерный массив - описывает в программе прямоугольную таблицу.

Его элементы обозначаются переменной с двумя индексами, например:

С9 (4,5), где первый индекс обозначает № строки, а второй № столбца.

Прежде чем использовать массив, нужно указать компьютеру размер этого массива. Для объявления размера массива, используется оператор DIM. Слово DIM является сокращением слова dimension (размер).

Общая форма записи оператора:

DIM имя массива (I1[,J1]),

имя массива (I2[,J2]),…

Здесь I1,J1;I2,J2- верхние границы, представляющие собой положительно целые константы, квадратные скобки указывают на то, что элемент не обязателен. В Бейсике индекс массива всегда начинается с нуля.

2. Практическая часть. Решение задач в среде программирования QBASIC

Программа, включающая в себя следующие операторы: ввод первого операнда; ввод второго операнда; условный оператор; вывод результата

INPUT “a=”; a

INPUT “b=”; b

IF a>b THEN c=a+b ELSE c=a*b

PRINT “c=”;c

END

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

FOR i=1 TO 7 STEP 1

INPUT a

PRINT a, a3

NEXT i

END

Пример обработки массива в цикле

DIM mass(6)

RANDOMIZE TIMER

FOR k=1 TO 6

mass(k)=INT(RND*100)

s=s+mass(k)

PRINT “mass(“;k;”)=”;mass(k)

NEXT k

PRINT “symma=”;s

END

программный алгоритмический линейный

2.1 Выполнение арифметических операций

Найти значение выражения

Программа, работающая в диалоговом режиме

10 INPUT a, b, c

20 d = a

30 IF d = 0 GOTO 60

40 PRINT (c * (a 3 * b) - c 2) * (c 3 / a)

50 END

60 PRINT “no a net 0”

70 GOTO 10

Рисунок 5. Блок-схема

Найти значение выражения

Программа, работающая в диалоговом режиме

10 INPUT a, b, c

20 d = 9 - a2

30 IF d = 0 GOTO 60

40 PRINT (a2 + 3 * b 3 * c) - (5 * c / (9 - a2))

50 END

60PRINT “a not 3”; “a not -3”

70GOTO 10

Рисунок 6. Блок-схема

2.2 Матрица

Вывод элементов матрицы с помощью табуляции

10 CLS

20 DATA 1, 2, 3, 4, 5, 6, 7, 8, 9

30 PRINT “MATRICA A”

40 FOR I =1 TO 3

50 FOR J=1 TO 3

60 READ M (I,J)

70 PRINT TAB (3*J); M (I,J)

80 NEXT J

90 PRINT

100 NEXT I

110 END

Рисунок 7. Вывод матрицы

2.3 Массив

Из элементов двух массивов составить один массив

INPUT "Сколько элементов в массивах"; n, m

DIM x(n), y(m), z(n + m)

a = -9: b = 10

FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND)

PRINT x(i);

NEXT i: PRINT

FOR i = 1 TO m: y(i) = INT(a + (b - a) * RND)

PRINT y(i);

NEXT: PRINT

FOR i = 1 TO n: z(i) = x(i): NEXT

k = 1

FOR i = n + k TO n + m: z(n + k) = y(k): k = k + 1: NEXT

FOR i = 1 TO n + m: PRINT z(i); : NEXT i

Рисунок 8. Массив

2.3 Основы векторного исчисления

Программа нахождения скалярного и векторного произведения векторов, угла между ними

INPUT "BBЕДИТЕ КООРДИНАТЫ ПЕРВОГО ВЕКТОРА"; x1, y1, z1

INPUT "BBЕДИТЕ КООРДИНАТЫ ВТОРОГО ВЕКТОРА "; x2, y2, z2

ska = x1 * x2 + y1 * y2 + z1 * z2

PRINT "СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ = "; ska

x3 = y1 * z2 - z1 * y2

y3 = x1 * z2 - z1 * x2

z3 = x1 * y2 - y1 * x2

PRINT "BEKTOPHOE ПPOUЗBEДEHИE a*b= "; x3, y3, z3

a = (x1 2 + y1 2 + z1 2) (1 / 2)

b = (x2 2 + y2 2 + z2 2) (1 / 2)

ugl = ska / (a * b)

PRINT "КОСИНУСУГЛАМЕЖДУВЕКТОРАМИРАВЕН"; ugl

Рисунок 9

2.4 Графический режим Qbasic. Построение графика функций

Программа построения графика функции

SCREEN 12

WINDOW (-7, -6)-(7, 80)

X1 = -7: X2 = 4

H = (X2 - X1) / 100

Y1 = 3 * X1 2 + 8 * X1 + 3

PSET (X1, Y1)

FOR X = X1 TO X2 STEP H

Y = 3 * X 2 + 8 * X + 3

LINE -(X, Y)

NEXT Х

Программа создания рисунка

SCREEN 12

WINDOW (0, 0)-(640, 480)

LINE (0, 0)-(640, 480), 9, BF

LINE (200, 40)-(440, 40), 15

CIRCLE (200, 160), 120, 15, 4.71, 0

CIRCLE (440, 160), 120, 15, 3.14, 4.71

PAINT (320, 80), 8, 15

CIRCLE (320, 280), 120, 15, -3.14, -6.28

PAINT (320, 240), 8, 15

CIRCLE (260, 280), 60, 15, 0, 3.14

PAINT (260, 310), 4, 15

CIRCLE (380, 280), 60, 15, 0, 3.14

PAINT (380, 310), 2, 15

CIRCLE (380, 280), 60, 15, 0, 3.14

PAINT (380, 310), 2, 15

END

Программа для определения длины слов

10 CLS

20 DIM sl$(5)

30 DEF fns$ (a$) = STR$(LEN (a$))

40 FOR i =1 TO 5

50 DATA MAMA, PAPA, BABUSKA, DEDUSHKA, SESTRA

60 READ sl$(i)

70 PRINT fns$(sl$(i)) + “bukv soderjit slovo” + sl$(i)

80 NEXT i

90 END

Заключение

Исходя из изученного материала по курсовой работе, представляется целесообразным отметить, что решение какой-либо задачи с помощью ЭВМ распадается на три основных этапа: постановка задачи, составление алгоритма решения, программная реализация алгоритма на ЭВМ. В данной работе, ее практической части реализованы все указанные выше этапы в среде программирования Qbasic.

В курсовой представлены задания, которые направлены на овладение основами программирования в указанной среде: выполнение арифметических операций, графические возможности.

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

В среде Qbasic существует несколько экранных режимов. Основной исходный экран представляет поле редактирования текста программы. Встроенный текстовый редактор выполняет две функции - редактирования текста и синхронной интерпретации строки. В этой связи строки в некоторых программах не нумеровались. Результаты работы программы, комментарии и сообщения интерпретатора представлялись в текстовом экране (по умолчанию режим SCREEN 0). При работе с графикой приходилось менять версию QBASIC по причине отсутствия графического режима.

Изучая теорию по учебнику «Информатика и ИКТ», автором которого является Цветкова М.С. год издания 2014, в разделе «Основы алгоритмизации» отметила для себя новые факты из истории алгоритма.

Узнала, что приблизительно в 850 г.н.э. была написана книга об общих правилах решения арифметических задач с помощью уравнений. Написана эта книга была арабским учёным-математиком Мухамедом беном Мусомал-Хорезмом и называлась «Китаб ал - Джебр».

Новым было сравнение символьной информации и определение их на связующее иное слово.

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

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

Поэтому тексты представленных в работе программ отлажены именно в ней.

Таким образом, основная цель курсовой работы по овладению основами программирования в среде Qbasic, выполнена.

Вся курсовая работа и практические задания прилагаются на диске (приложение 2).

Список литературы

1. Могилев А.В. Информатика/Могилев А.В.- М.: 2011. - 816 с.

2. Сафронов И.К. Бейсик в задачах и примерах/Сафронов И.К.-СПб.: BHV, 2010. - 215 с.

3. Семашко Г.Л. Программирование для всех/Семашко Г.Л.- М.: Наука, 2013. -325 с.

4. Ставнистый Н.Н. Qbasic в математике. Решение задач с помощью компьютера/Ставнистый Н.Н.- М.: СОЛОН-Р, 2010. - 143 с.

5. Федоренко Ю.П. Алгоритмы и программы на QBASIC/Федоренко Ю.П. - СПб.: Питер, 2011. - 287 с.

6. Хомоненко А.Д. Основы современных компьютерных технологий/Хомоненко А.Д.- СПб.: КОРОНА принт, 2009. - 448 с.

7. Чернов Б.И. Программирование на алгоритмических языках Бейсик, Фортран, Паскаль/Чернов Б.И. - М.: Просвещение, 2011. - 192 с.

8. Цветкова М.С. Информатика и ИКТ: учебник для сред. проф. Образования/ Цветкова М.С., Великович Л.С. - 6-е изд., стер.-М.: Издательский центр «Академия», 2014.- 352 с.

9. Пестриков В.М. QBASIC на примерах/ Пестряков В.М., Тяжев А.Т.- СПб.: БХВ-Петербург, 2010.-304 с.

10. Сафронов И.К. Бейсик в задачах и примерах/Сафронов И.К.-2-е изд., перераб. и доп.-СПб.: БХВ-Петербург, 2010.-320с.

11. Ставнистый Н.Н. QBASIC в математике/Ставнистый Н.Н.: Солон-Р, 2010.-64с.

12. Алиев В.К. Языки Бейсик/Алиев В.К.: Солон-Р,2011.- 215с.

13. Симонович С.В. Информатика. Базовый курс: Учебник для вузов/Симонович С.В.-Стандарт третьего поколения.-СПб.:Питер,2011.-640с.

Приложение 1

Графический режим

Рисунок 10. График функции построенный с помощью программы 2.4.1

Рисунок 11.Программа по определению длины слов с помощью программы 2.4.3

Рисунок 12. Создание рисунка «Мороженое» с помощью программы 2.4.2

Размещено на Allbest.ru


Подобные документы

  • Характеристика алгоритма, его свойств, способов записи. Особенности, типовые примеры линейной алгоритмической структуры. Анализ разветвляющей алгоритмической структуры. Изучение основных операторов циклов. Эволюция, классификация языков программирования.

    контрольная работа [492,2 K], добавлен 15.02.2010

  • Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.

    дипломная работа [6,6 M], добавлен 04.09.2014

  • Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).

    дипломная работа [588,3 K], добавлен 29.12.2010

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

    курсовая работа [575,8 K], добавлен 06.12.2013

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

    контрольная работа [163,7 K], добавлен 04.06.2013

  • Выполнение арифметических операций, этапы решения задач с помощью ЭВМ - постановка задачи, составление алгоритма решения, программная реализация алгоритма в среде Qbasic. Решение систем линейных уравнений по формулам Крамера. Графический режим Qbasic.

    курсовая работа [101,7 K], добавлен 29.09.2009

  • Разложение функции в ряд Тейлора, алгоритм работы программного интерфейса сокетов, исходный текст программ с комментариями. Возможности языка программирования Си и среда разработки приложений в ОС Linux. Виртуальная среда VMWare Player и VirtualBox.

    лабораторная работа [1,8 M], добавлен 02.09.2014

  • Выполнение арифметических операций с помощью вспомогательных переменных, которые позволяют вычислить искомую переменную. Использование оператора цикла с предусловием и полной формы условного оператора. Примеры решения задач на работу с двумерным массивом.

    курсовая работа [518,8 K], добавлен 07.03.2014

  • Изучение языка программирования QBasic с позиций структурного подхода с целью выработки правильных навыков составления программ. Предварительный анализ сложной задачи с целью разбития её на отдельные простые части. Детализация и составление подпрограмм.

    учебное пособие [11,7 K], добавлен 11.10.2011

  • Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.

    методичка [366,8 K], добавлен 16.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.