Microsoft QuickBASIC: операторы, массивы, циклы

Запуск QuickBASIC и его пределы. Операторы LET, PRINT, CLS и END, их использование в программировании. Запись массива в файл и чтение из него. Двумерные и многомерные массивы различной природы. Решение уравнений методами последовательных приближений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 01.05.2015
Размер файла 1,3 M

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

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

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

Содержание

Введение

1. Запуск QuickBASICа и его пределы

2. Немного о программах, программировании и программистах

3. Операторы (Statements) QuickBASIC'а

4. Операторы LET, PRINT, CLS и END

4.1 Оператор LET

4.2 Оператор PRINT

4.3 Оператор CLS

4.4 Оператор END

4.5 Оператор ввода данных INPUT

4.6 Операторы перехода GOTO и IF … THEN

5. Организация циклов

5.1 Оператор DIM

5.2 Оператор FOR … NEXT

6. Работа с массивами. Одномерные (однопараметрические) массивы

7. Запись массива в файл и чтение из файла

8. Двумерные и многомерные массивы различной природы. Запись,чтение

9. Работа с векторами и матрицами

10. Решение уравнений методами последовательных приближений

11. Графика в QB

Литература

Приложения

Введение

В последние фактически восемнадцать лет почти все компьютеры «работают» в ставшей привычной для глаза среде Windows. Уже появилось поколение молодых людей и девушек просто теряющихся, завидев пустой черный экран и мерцающий на нем командный «ДОСовский» промптер. Даже простая опция выхода в «DOS-сессию» вызывает у них весьма смутные представления о последствиях сделанного выбора. Нет никаких сомнений в том, что программное обеспечение будет развиваться и далее в сторону все большего «сокрытия» от «пользователей» того, что творится на самом деле с файлами, директориями и т.д., как это уже давно сделано на «Макинтошах», не говоря уже о новейших iOS для iPhone и iPad. Пользователь такого ультрасовременного компьютера понятия не имеет о том, что за драмы происходят на его «винтах» или картах памяти, в файловой системе, какие символы стоят в начале, внутри и в конце файла, как конкретно выглядит машинная программа, что она делает, и т.д. Добраться же до командного промптера в «Маках» - дело трудно-осуществимое по определению.

Однако, а это все же события «новейшей» истории, совсем уж и не так давно всякий студент ничего более сильного, чем ДОСовский Нортон-Коммандер на мониторе учебного компьютера не видел, и видеть не мог. Все сказанное выше объясняется резким скачком в развитии вычислительной техники в сторону качественного увеличения мощности машин, качественных сдвигов в сторону улучшения пользовательских свойств как программных продуктов, так и системных оболочек. И это - аналог закона Мура, только в программном обеспечении. Именно поэтому у всякого преподавателя возникает проблема выбора: преподавать ли в курсе с довольно старым, но весьма обязывающим названием «Программирование на ЭВМ» новейшие офисные приложения (как правило, разработанные компанией Майкрософт г-на Билла Гейтса, но не стоит забывать и проекты IBM (Symphony Office), как и более зрелый проект Open Office, ранее поддерживавшийся выдающейся компанией Sun Microsystems, а теперь мощной фирмой Oracle), работающие исключительно на мощных многоядерных процессорах с качественным монитором и исключительно под руководством «мыша», или же вместо оглушения студенческой головы всяческими «Икселами» и «Уордами» вначале изложить достаточно ясные части ДОС и научить ее (голову) работать хоть на каком-то языке программирования? На вопрос этот ответить сразу достаточно трудно хотя бы потому, что: quickbasic программирование массив уравнение

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

Нужно быть твердо убежденным в том, что без осознания ДОСовской «компьютерной арифметики» и изучения какого-либо языка программирования на уровне написания программ нельзя научить студента информатике и открыть ему доступ к действительному овладению компьютером как инструментом научного познания.

Наконец, события последних 2 лет (почти лавинный переход на 64-рахзрядные машины и ОС) почти «прибили» старые «проги». Ан нет, нашлись программисты и специалисты, которые создали аналог доброго BASIC, но теперь для 64-разрядных машин и огромным «довеском» новых функций, вполне годных для самостоятельного создания приложений в новых «операционках».

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

Сразу же возникает вопрос второй: какой язык программирования наиболее удобен для начального изучения? Язык «Си», «Паскаль», или же «Бэйсик»? Ответ на этот вопрос не может быть однозначным. Учтем, что далеко не у всех студентов дома есть мощный (или вообще какой-нибудь) компьютер. Далеко не у всех информатика в школе преподавалась на уровне выдающегося лицея. Про язык «Си» говорить не будем, так как выгоднее изучать сразу «С++». Но даже если на вашем факультете исторически сложилось так, что на кафедральных ПК кроме «Паскаля» ничего нет, да и все научные сотрудники понимают только этот язык, то все еще рано сбрасывать QuickBASIC (в дальнейшем, QB) со счетов. Причин этому несколько, важнейшая из которых - совместимость QB с самой операционной системой MS-DOS - этой прабабушкой современных «осей». И еще один плюс -- QB обычно «встраивался» в каталог поставляемых операционных систем MS-DOS 3.1 и выше. Кроме того, нельзя не отметить достаточную мощность QB для решения многих задач по сбору и обработке информации, полученной в эксперименте. Если учесть также и богатую справочную систему QB, в которой приводится не только формат (т.е. способ представления) команд, но и множество деталей и даже примеры (с единственным небольшим недостатком -- все справки выдаются на английском языке), то становятся ясными преимущества данного языка. Кроме того, QB качественно отличается в лучшую сторону от иных существующих версий BASIC'ов своей универсальностью и интегрированностью в операционную систему. А с выходом в 2010 году первых версий qb64 дело вообще приняло оптимистический оборот: начав с QB, обучающийся может даже самостоятельно достигнуть высот самого современного программирования!

Текст, предлагаемый вашему вниманию ниже, ни в коей степени не претендует на звание полного учебника по QB -- для написания книги такого рода нужно намного больше и места, и терпения писателя, и терпения читателя. Цель данного пособия -- помочь разобраться в самых началах программирования в QB, освоить полезные навыки в использовании некоторых популярных команд. Говоря иными словами, красивому и чистому батерфляю мы научиться вряд ли сможем; однако наша промежуточная и очень важная цель -- не утонуть в бассейне -- вполне достижима. Структура книги достаточно проста: вначале мы опишем некоторые особенности QB, затем займемся написанием нескольких конкретных программ на нем, а в конце приведем сведения, без которых читателю (a piori не англоязычному) будет нелегко установить контакт с интерфейсом QB. Мы предполагаем, что самые элементарные команды и понятия операционной системы MS-DOS читателю уже известны.

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

вводить все символы в латинских символах, не употребляя русский шрифт вовсе и ни в коем случае не нажимая на клавиши «Shift» и «CapsLock» для придания правдоподобности набиваемому тексту программ;

уметь свободно набирать текст с клавиатуры и понимать разницу между указаниями {Alt + R, R} и {Alt, R} - в первом случае нужно 1) нажать клавишу {Alt} и затем, НЕ ОТПУСКАЯ КЛАВИШУ Alt, нажать (вряд ли это удастся сделать тем же пальцем!) клавишу R, после чего 3) ОТПУСТИТЬ ОБЕ КЛАВИШИ И 4) СНОВА нажать на клавишу R. Второе указание предусматривает просто последовательное нажатие клавиш Alt и R;

не забывать отделять операторы (то, что определяет действие) от операндов (то, над чем операторы работают, т.е. с чем, собственно, действия и производятся) ПРОБЕЛОМ;

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

стараться менять условия задач, самому (или самой) придумывать новые задачи и затем самостоятельно писать программы для их решения -- это лучшее средство научиться программировать;

ни в коем случае не заниматься простым (и тупым!) перенабором программ из книги на экран компьютера -- вы тогда просто не научитесь писать программы! Лучше всего набирать программы, скрыв данный текст от ваших глаз;

здесь же отметим одну особенность именно женских характера и памяти: представительницы прекрасной половины человечества способны запоминать огромные количества текста, вовсе даже и не переживая глубоко за его содержание. И этот факт даже можно подтвердить экспериментально. Именно это обстоятельство способствует тому, что многоуважаемые дамы иногда никак не могут понять чего же хочет от них тот, от кого они сами хотят получить зачет - они почти буквально (зрительно) запоминают текст программ (правда, путая при этом операторы и буквы), программы эти (и это тоже правда) почему-то не работают, а зачет почему-то не ставят… Утешением может послужить то обстоятельство, что первым в мире программистом считается Ада (Эйда) Лавлейс -- дочь лорда Байрона;

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

Если Вы, добравшись до этих строк, улыбнулись, то к Вам они имеют самое малое отношение.

В заключение мне очень бы хотелось поблагодарить сотрудников ДИСа за предоставленную возможность пользоваться на лекциях полноэкранным дисплеем в ауд. 220. Слова искренней благодарности хотелось бы также высказать в адрес работников ДИСа (или ЦИТа), перед знаниями которых можно только преклоняться. Специальное спасибо еще ЦИТу КГУ и лаборатории компьютерных средств обучения за возможность пользования MS QuickBASIC'ом версии 4.5.

1. Запуск QuickBASICа и его пределы

Если вы находитесь в командной строке DOS, а директория, в которой находятся файлы QuickBASICа имеет доступ, заранее открытый через команду MS-DOS “PATH” в файле autoexec.bat, то достаточно набрать символы qb” или “qbasic” и нажать на клавишу «Enter». Вы увидите голубое окно, в котором можно выделить несколько меню и подокон (см. рис.)

Заставка в центре экрана переводится так:

«Добро пожаловать в MS-QuickBASIC.

Авторские права Корпорации Майкрософт. Все права защищены.

Нажмите Enter, чтобы просмотреть Руководство по Выживанию

Нажмите Esc, чтобы очистить это диалоговое окно».

Верхняя часть пользовательского интерфейса (то-бишь, экранного представления той программы, с которой вы работаете) имеет строку меню, которое активизируется при нажатии клавиши Alt.

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

Нижняя часть экрана занята так называемым окном «Сразу». В этом окошке вы можете выяснить некоторые вопросы, не запуская всю программу (например, вычислить или выяснить, чему будет равно число 3,141592654/2). «Прыгать» по окнам нужно клавишей F6.

Самая нижняя строка зеленоватого цвета содержит некоторые подсказки.

Зайдем в верхнее меню. Оно содержит восемь пунктов:

File Edit View Search Run Debug Options и Help

(В конце этой книги имеется маленький англо-русский словарик, в который уже можно заглянуть!)

Всякий конкретный язык программирования, за исключением самых абстрактных версий, работает с числами или оперирует числовыми величинами. Такие величины именуют иногда константами, но они могут и изменяться в процессе выполнения программ. Для использования таких меняющихся цифровых величин служат объекты языка, называемые переменными. Переменные могут содержать не только числовую, но и символьную информацию, поэтому их и различают как числовые и символьные (string). Отметим, что всякая переменная величина должна иметь имя, которое является, по определению, величиной символьной. Сразу отметим, что всякая переменная может быть простой (без дополнительных параметров) или, наоборот, параметризованной, причем параметров может быть не один или два, а больше.

Для большей ясности приведем такую интерпретацию понятия переменной некоторого языка. Если в программе следует работать с какими-то величинами, изменяющимися или изменяемыми в ходе выполнения программы, то машина, натолкнувшись на такой объект в теле программы, который она интерпретирует как переменную, открывает в машинной памяти некий ящик (выделяет частичку памяти на цели работы с числами или символами, которые будут фигурировать под флагом данной переменной). Такой ящик непременно должен иметь имя. Если в программе попадаются простые переменные, то их можно считать разбросанными по программе ящиками, в которые программа что-нибудь складывает, записывает, вычитает, умножает, делится с другими программами и т.д.

Скажем, команда

LET X = 1

означает, что машина создает ящик с именем X и закладывает в этот ящик единицу. Если где-то далее встретится команда

LET Y = X + 1

то машина организует новый ящик с биркой «Y», затем заглянет в ящик X, «увидит» там единицу, эту единицу занесет в Y, а затем добавит туда же еще одну единицу. Таким образом, далее на «поле военных действий» нашей программы возникает два ящика с табличками, в одном лежит 1, в другом же -- число 2. При использовании так называемых параметрических (сложных) переменных, их можно обозначать или некоторой общей частью, или вводить параметр переменной. Например, возможно использование имен X1, X2, X3, …, Xn-1, Xn -- это пример написания в QB простых переменных, о взаимной связи которых мы в явном виде ничего QB не говорим. А вот если мы запишем то же самое в виде X(1), X(2), X(3), …, X(n-1), X(n), то QB поймет это как приказ открыть целую «улицу» «ящиков» с общим именем X, причем на этой улице существует «нумерация домов» от 1 до n. «Номер дома» каждого ящика служит в данном случае параметром этой однопараметрической переменной. Будем надеяться, что теперь запись X(1,.1), X(1,2,), …, X(1,m), X(2,1), X(2,2), …, X(2,m), … X(n, m) станет понятной нам записью некоторого «палаточного городка» с этими самыми ящиками переменных, в котором есть n переулков и m улиц (а может быть и наоборот). Имя этому городку -- двухпараметрическая переменная X(I,J), где I и J изменяются в определенных пределах. Если нам понадобиться записать трехпараметрическую (причем символьную, а не числовую) переменную, то можно воспользоваться записью Pogoda$(I,J,K), где в каждый ящик теперь уже многоэтажного муравейника со своими улицами (это где J и K фиксированы, а I меняется), переулками (на них фиксируются I и K, а свободно меняется J) и этажами (каждому K-ому этажу соответствует фиксация I,J) можно вложить уже не число, а символьную строчку (например, «клюет» или «не клюет»). Если вы проводите наблюдения за успехами вашей рыбалки и записываете под I --номер рыбалки, J -- температура при этой рыбалке, а K --давление, придавая переменной значение «клюет» или «не клюет», то в результате вы сможете организовать некоторое множество данных. Отсортировав их по признаку «клюет» - «не клюет», вы сможете получить метеоусловия, при которых рыба клюет или, наоборот, параметры погоды, при которой удочки надо хранить дома.

Имя переменной в QB не может иметь разрывов или пробелов (представьте себе имя «Ив ан» или «Ел ена»!) и должно не содержать некоторых специальных символов (например, ?,*, / и т.д.).

Очевидно, что никакая машина не может работать со сколь угодно большими или сколь угодно (бесконечно) малыми величинами, будь они числовыми или символьными, т.е. у машины существуют определенные пороги «чувствительности» чисел, или пределы числовых и символьных выражений. Говорят, что на островах Полинезии существуют племена, у которых счет идет по принципу «один, два, три, много». У столь выдающегося создания, коим является компьютер, также существуют рамки, за которыми величины (числовые или символьные) становятся ему, скажем, непонятными. Отметим сразу, что эти пределы зависят также и от описания (или класса) этих величин. QB различает величины:

ЧИСЛОВЫЕ

Целые или INTEGERS,

Длинные целые или LONG INTEGERS,

Числа одинарной точности или SINGLE-PRECISION NUMBERS,

Числа удвоенной точности или DOUBLE-PRECISION NUMBERS;

СИМВОЛЬНЫЕ

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

? (NB Nota bene или «запомни хорошенько»): Как только в потоке вводимого вами числа появится буква или иной нецифровой символ, QB проинтерпретирует такое выражение как стринг; если же вы вводите вместо стринга довольно длинное число, то QB проинтерпретирует его как странноватый, но стринг, в котором нет букв, а есть только символы-цифры.

Собственно пределы величин в QB можно описать следующей таблицей:

МАКСИМУММИНИМУМ

Длина имени

переменной

40 символов 1 символ

Длина символьной

величины (стринг'а)

32 767 символов0 символов

Целые 32 767 -32 768

Длинные целые

2 147 483 647 -2 147 483 648

Числа одинарной точности:

Положительные 3

.402823E+38 2.802597E-45

Отрицательные

-2.802597E-45 -3.402823E+38

Числа двойной точности:

Положительные

1.79769313486231D+308 4.940656458412465D-324

Отрицательные

-4.940656458412465D-324 -1.79769313486231D+308

Это значит, что число, описанное в вашей программе на QB как величина двойной точности, хранится и обрабатывается QB со 1) знаком, 2) шестнадцатью цифрами, 3) указателем точности («D») и 4) порядком. Отметим, что представление чисел в QB использует знак # для обозначения целых величин, значок «E» используется для чисел одинарной точности, тогда как «D» означает двойную точность числа, внутри которого такой знак Вам встретился.

В QB существуют понятия утверждений, которые мы обычно будем традиционно называть операторами, и функций. Для отделения первых (операторов) от того, к чему они относятся (операндов) используется обязательный пробел. Есть, правда, операторы столь популярные, что имя их даже не приводится (оператор присвоения LET). Что же касается функций, то на их присутствие указывает наличие аргумента в скобках.

? В QB все операторы и функции имеют одну отличительную особенность -- они пишутся исключительно заглавными буквами. НО (!) ни в коем случае НЕЛЬЗЯ их вводить с клавиатуры заглавными буквами. Напротив, используйте только маленькие буквы! Редактор QB настолько умен, что распознает ПРАВИЛЬНО введенные операторы и при переходе на новую строку, САМ ПРОПИСЫВАЕТ ИХ ЗАГЛАВНЫМИ БУКВАМИ. Поэтому ввод с клавиатуры заглавных букв при написании программы есть не просто обман программы, а очень вредный САМООБМАН.

? Отметим, что в QB существуют некоторые «запрещенные» имена, которые не стоит использовать для обозначения переменных. В Приложениях можно увидеть список операторов и функций QB.

Меню «File» в минимальном виде содержит опции New Open… Save Save As … Print и Exit. В QB версии 4.5 это меню может быть расширено выбором {Alt + O} и соответствующего пункта.

Буквы, выделяемые белым цветом (у нас они просто полужирные), означают, что при нажатии соответствующей буквы на клавиатуре вы получите желаемый выбор опции без всяких передвижений курсора по пунктам меню. Так, например, сочетание клавиш {Alt + F, x} просто выведет вас из QB, а весьма важное сочетание {Alt + F, S} позволяет достаточно быстро и часто сохранять (спасать) сотворенные вами коды программы или ее листинг (так называют исходный текст программы).

2. Немного о программах, программировании и программистах

Известно, что программой называют реализацию какого-то алгоритма на том или ином языке программирования. Алгоритм, в свою очередь, это строго определенная последовательность элементарных шагов и/или переходов для достижения определенной цели.

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

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

Если одна и та же последовательность шагов программы может повториться при ее выполнении более, чем один раз, то такую часть программы называют циклом. Так как количество прохождений цикла (да и вообще «впадение» программы в цикл) определяется некоторым условием на величину, называемую по-иному параметром цикла, то мы обнаруживаем еще одно использование слова параметр. Ясно, что для попадания программы в некоторый цикл требуется, чтобы это позволили сделать пороговые значения параметра. Если цикл прописан неверно, то может произойти так называемое «зацикливание» программы (например, при слишком больших значениях параметра цикла, или при неизменности параметра цикла, несмотря на прохождение по циклу, или «колебательные», «маятниковые» изменения параметра цикла, из-за чего программа не может увести управление из тела цикла). В качестве примера можно рассмотреть такую ситуацию: вы приходите к бюрократу Ивану Ивановичу, а он посылает вас к Петру Петровичу, который вас отсылает к Сидору Сидоровичу, а оный -- снова к Ивану Ивановичу и т.д. Если за параметр принять ваше терпение, то такой цикл прервется только тогда, когда ваше терпение (или здоровье) закончится. Если же обязательным условием Вашей задачи является фраза «непременно получить такую-то бумагу», то из постановки задачи видно, что цикл не закончится полезным результатом. Циклы могут входить один в другой (говорят, «вложенные циклы»), или выполняться по частям каждый период.

Искусство программиста, т.е. человека, пишущего или создающего программы, заключается не в простом буквоедском написании самого текста при безусловно широком и полном знании «оборотов» каждого конкретного языка программирования, но в создании красивой и целенаправленной структуры выполнения программы. Поэтому часто программисты не только пишут саму программу по набору правил, но и находят остроумные и нестандартные решения для выполнения шагов «макро-алгоритма» написания программы и достижения поставленной цели. Именно накапливающийся мировой опыт в создании программ и определяет основные направления развития всего программирования. Некоторые части программ становятся (узко-признанными - потому что среди профессионалов) стандартами. Так, например, уже стал стандартом вид графического пользовательского интерфейса (GUI - Graphic User Interface) -- обычно вверху располагается меню опций, каждый пункт которого разворачивается вниз (pull-down) при выборе. Именно этот принцип построения GUI и использован в QB.

Остановимся подробнее на верхнем меню QB и зайдем в некоторые его пункты.

В пункте File раскрываются подпункты

New -- начать создание новой программы

Open -- открыть ранее созданную программу

Save -- сохранить (спасти) созданную или отредактированную программу под старым именем

Save As-- сохранить (спасти) созданную или отредактированную программу под новым именем или в другом месте

Print -- распечатать программу на принтере

Load file -- загрузить какой-нибудь файл в окно редактора QB

Unload file -- выгрузить файл из окна редактора QB

DOS Shell -- выйти в DOS (обратное возвращение происходит после набора EXIT с клавиатуры)

Exit -- выйти из активного сеанса работы с QB.

Достаточно важным является также и пункт Edit. В нем можно увидеть опции (подпункты)

Cut -- вырезать выделенный фрагмент текста

Copy -- скопировать (не вырезая или не удаляя) выделенный фрагмент текста в буфер

Paste -- вставить фрагмент текста из буфера в текст в окне редактора на текущей позиции курсора

Clear -- удалить весь выделенный фрагмент текста (без запоминания в буфере).

Следует обратить особое внимание на указанные справа от этих опций клавиатурные сокращения (ShotKeys). Например, обычно сочетание клавиш {Ctrl + Insert} забирает фрагмент в буфер без удаления с экрана, {Shift + Delete} -- забирает фрагмент с удалением с экрана, {Shift + Insert}-- вставляет фрагмент из буфера на место после курсора.

?Для выделения текста нужно 1) встать курсором на начало нужной строки, 2) нажав и удерживая клавишу {Shift}, стрелками «забелить» нужный кусок текста.

? Нельзя «тараканить», т.е. по шажочкам ползать курсором по всему тексту. Это утомительно, некрасиво, непрофессионально и т.д. Для перескакивания через слово служит комбинация {Ctrl + [] или []}. В начало строки можно сразу попасть клавишей {Home}, в конец строки -- клавишей {End}. В сочетании с {PgDn} и {PgUp} можно быстро добраться до начала текста или его конца. Разумно пользоваться обеими режимами курсора в редакторе QB: при нажатии клавиши {Insert} вы заметите, что курсор стал мигать во всю букву (а не подчеркивать ее). В этом режиме вы не вставляете новый текст, а замещаете новыми буквами старый (пишите поверх старых знаков). Еще раз нажмите ту же клавишу, и курсор снова уменьшится, а новые буквы будут «вставляться», сдвигая остаток строчки вправо от курсора.

Отметим, что важными (в принципе, все пункты очень важны!) пунктами меню являются Run и Help. Первый пункт позволяет запускать, продолжать выполнять запущенную или перезапускать программу. Во втором пункте вы найдете расширенную помощь по всем вопросам, правда, только на английском языке. История последней половины ХХ века сложилась так, что программирование более всего развивалось в США. Именно поэтому мы имеем дело с операторами, написание которых часто имеет прямую английскую трактовку. Научиться программировать -- значит научиться хотя бы азам английского языка. При этом полезно вспомнить, что 1) весь Интернет понимает только по-английски; 2) человек, знающий два языка становится в два раза богаче; 3) если вы знаете только один язык, то вы и его-то не знаете толком.

Кроме того, QB активно работает с вами, выставляя вам окошко с комментариями или предупреждениями или сразу после ошибки в набираемой программе, или после ее запуска. И это его самое ценное качество! Он помогаем Вам учиться. Просто нужно уметь понимать то, что 1) вам пытаются помочь, 2) что именно вам говорят.

3. Операторы (Statements) QuickBASIC'а

Все операторы (Statements) в QB, вообще говоря, пишутся прописными буквами (мы уже условились этого никогда не делать, он сам их сделает потом большими!). Операторы предъявляются всегда в определенном формате, т.е. по некоторым правилам, в которых имеется достаточно много свободы, но порядок, в котором указываются опции формата, должен соблюдаться строго. Цель каждого оператора -- реализовать один шаг требуемого алгоритма или некоторую его часть (например, цикл). Оператор всегда занимает начало строки (или строки начала и конца оператора). Единственное, что может стоять перед оператором, это метка. После оператора обязан присутствовать пробел, после которого записывают то, с чем оператор должен оперировать, или операнды.

В тексте (листинге) программы QB автоматически различает строки (каждая строка заканчивается определенным не печатающимся символом EOL (End of Line)), а затем порядок текста в строке (такой порядок называется лексикографическим).

Именно лексикографический порядок и определяет очередность исполнения (или передачи управления) операторов в ходе выполнения той или иной программы. Единственное, что может нарушить такой порядок, это явное указание (опять же при помощи оператора) на «принудительное» исполнение не следующей строки а той, метка которой стоит в операторе перехода. Кстати, в различных старых версиях BASICа обычно текст каждой строки начинался с определенного номера. Фактически, это был способ пометить каждую строку. Старые BASICи определяли для себя порядок выполнения именно по метке в начале строки (номеру, ибо такая метка обычно была числом). Большим неудобством при этом было то, что при желании «втиснуть» какой-то кусок программы между двумя уже написанными строками приходилось перенумеровывать все строки. Способ избежать связанных с этим трудностей заключался в том, что строки нумеровались не подряд, а с «зазором» (например, 100, 110, 120 и т.д.). Как мы видим, теперь QB сам определяет порядок по их нахождению в тексте.

Еще одно замечание: QB может допускать присутствие не одного оператора в одной строке; в этом случае операторы разделяют двоеточием «:». Иногда возможность написать несколько операторов в одной строке не только компактифицирует текст программы, но и позволяет избежать неуклюжести. Не следует, однако, перегружать строки и пользоваться двоеточием без особой нужды.

4. Операторы LET, PRINT, CLS и END

4.1 Оператор LET

Слово «Let» в переводе с английского означает «пусть», «допустим». Оператор LET неизбежен при желании: «зарядить» какую-либо переменную конкретным числом; выполнить операцию присвоения, т.е. присуждения тому, что стоит в левой части выражения того значения (возможно и алгебраического), которое стоит в его правой части. Самое интересное заключается в том, что QB разрешает и вовсе не писать сам оператор.

Формат предъявления оператора LET:

[LET] [new]variable = variable, expression, number

здесь запись выражения внутри квадратных скобок [ ] означает, что его можно опустить, сразу после оператора стоит [новая] переменная, знак равенства всегда и обязательно присутствует, а справа от равенства стоит или старая переменная, или выражение, содержащее определенные (старые) переменные, или вообще число. Довольно общим местом является предложение о том, что знак равенства в программе не имеет ничего общего со знаком равенства в математике. В математике выражения

A = A+1

D= 3*D

B=SQR((B^3))

не имеют достаточно ясного смысла (не может же нормальное число равняться себе да еще плюс единица). Данные выражения читаются так

A = A+1 (теперь переменная A есть старое значение А (имевшееся до этой строки) и еще плюс один),

D = 3*D (а теперь переменная D равна своему старому значению (до этой строки), умноженному на три),

B = SQR((B^3)) (переменная B теперь равна корню квадратному из своего старого значения, возведенного в куб).

Мы уже использовали некоторые «грамматические» правила QB в вышеуказанных записях. Отметим, что в QB арифметические (над числами) или алгебраические (над переменными) действия записывают так:

Сложение => a + b

Вычитание => a - b

Умножение => a * b

Деление => a / b

Возведение в натуральную степень

=> a ^ b.

QB «понимает», что такое скобки и вложение скобок, а порядок выполнения операций такой же, как и в обычной алгебре (сначала возведение в степень, потом умножение или деление, и лишь затем сложение или вычитание). Рекомендую использовать скобки, если вы не совсем уверены в том, поймет ли QB ваши намерения по очередности выполнения операций. Также рекомендую не путать 2A и 2*A, ибо первое означает просто новую переменную, а второе -- переменную A увеличенную вдвое. Итак, написав

A = 2

B = 2

C = A*B

мы получим, что в переменной C у нас окажется число 4 (= 2 х 2). Однако мы пока не умеем увидеть этот столь крупный результат. Именно для этого существует

4.2 Оператор PRINT

PRINT в переводе с английского означает «печатать». Таким образом, именно этот оператор позволяет возвращать на экран значения переменных, а также тексты.

Формат предъявления оператора PRINT:

PRINT [“Tekst”] [,][;] [variable, expression, symbol, number, etc.] [,][;] [“Tekst2”]

где Tekst2 и Tekst2 -- любой текст; variable, expression, symbol, number, etc. -- все те числовые (или символьные) значения, которые вы хотите вывести на экран монитора. Стоящие между операндами знаки -- запятая или точка с запятой -- используются для того, чтобы на выводе между операндами или оставался табулированный промежуток (при использовании запятой), или же печать происходила с минимальным зазором (точка с запятой).

Отметим, что QB абсолютно равнодушен к тому, что заключено между кавычками -- поэтому вы можете там печатать по-русски, по-китайски, по-амхарски (на амхарском языке говорят в Эфиопии) -- QB все это в полной сохранности выведет на монитор как только до этого дойдет дело (управление), совершенно не вникая в смысл написанного вами.

Одна из наиболее популярных студенческих ошибок -- не закрывать кавычки. Для того, чтобы такое неприличие не случилось именно с вами, послушайтесь моего совета. Все профессиональные кодировщики (те, кто пишет программные листинги) обычно сразу ставят обе кавычки, затем уходят курсором налево, вписывают нужный текст, потом нажимают клавишу {End} (это переводит курсор в конец строки) и пишут себе свою программку далее.

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

Еще одно дополнение: в QB вместо ввода строки

print “skorost' = ”;v

достаточно написать

?”skorost' = ”; v

и QB сам вместо «?» поставит оператор PRINT, наладит требуемые по формату пробелы и т.д. К сожалению, другие операторы он в таком виде не распознает.

4.3 Оператор CLS

Происходит от сокращения английских слов «clear screen» (очистить экран). Его формат предъявления очень прост -- напечатайте CLS и … и все! Его действие сводится к очистке экрана, что бывает необходимо при начале очередного интерактивного (или диалогового) блока программы.

Этот оператор обычно ставится первым номером в самом начале программ.

4.4 Оператор END

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

Если в явном ли неявном виде нет ссылки на строки ниже той, где стоит END, то при попадании управления на строку с END этот оператор прерывает передачу управления на нижележащие строки. Отметим также, что END может попадать несколько раз, завершая отдельные ветви алгоритма программы, в которые она может, скажем, «попасть насовсем».

Еще два коротких оператора, которым не стоит посвящать слишком много места, это

REM (все, что стоит после него в строке, программой игнорируется) и

` -- то же, что и REM, его можно ставить для написания комментариев.

Рассмотрим некоторые примеры программ.

Задача. Расстояние от города A до города B 820 км. Мы летим на самолете со скоростью 532 км/час. Написать программу, которая бы вычисляла время, затраченное на путь из A в B (без учета ветра, дождя, иных метеоусловий, приема пилотом таблеток «Саридон» и отсутствия керосина).

Решение:

CLS ` polet samoleta

s=820

v=532

t=s/v

print «vremya v puti »; s

end

Другое решение:

print «vremya v puti», 820/532

end

??В первом решении есть ма-а-аленькая ошибочка. Отладьте!

Второе решение короче, но и … тупее. Потому, что мы далее его развить не сможем. В принципе, программка сама по себе не очень хороша тем, что довольно неинтеллигентно находит одно число как результат обработки двух заданных наперед. Единственно приятное заключается в том, что всякий может убедиться воочию в том, что компьютер не хуже чем калькулятор. Более того, если вы введете строку

print ((3.141502654/2)*(sqr(2))/(256 -512))^2

то) Очень надеюсь, что Вы понимаете причину отсутствия запятой перед словом "то", точки после числа, кончающегося на 216 чуть ниже и иных знаков препинания далее в тексте) в результате выполнения этой строки компьютер выдаст на мониторе

262135.1143094216

Таким образом, в отличие от калькулятора, QB может выполнять гораздо более сложные цепочки действий. Между прочим, указанную строчку можно выполнить, не выгружаясь из программы которую вы набираете. Достаточно воспользоваться клавишей {F6}, и вы из основного окна текста программы в редакторе QB перейдете в нижнее окошко {Immediate}. Оно служит для непосредственного выполнения отдельных строк (вдруг вам надо вычислить что-то по ходу написания программы!). Именно это окошко вполне заменяет и калькулятор.

4.5 Оператор ввода данных INPUT

Input в переводе с английского означает «ввести». Оператор служит для ввода (в таком виде -- с клавиатуры) данных по запросу программы. Формат его

INPUT [“Tekst”] [,][;] variable

где Tekst между кавычками это тот же объект, что использовался в операторе PRINT. Однако оператор PRINT может печатать тексты несколько раз, а у INPUTа такая возможность одна и она всегда завершается именем переменной, к которой будет приписано введенное число или символьная строка. Потому текст просто обязан прокомментировать, что же вы просите ввести. Vartiable, как мы уже видели, это переменная.

Примеры:

input “vvedi argument x”; x

или

input “vvedi familiyu x”; x$

В первом случае будет запрошено число, во втором -- символьная величина.

Еще один пример:

input “vvedi svoyo imya ”; x$

print “Privet,”;x$;”!”

4.6 Операторы перехода GOTO и IF … THEN

Оператор GOTO происходит, очевидно, от «go to» (идти к). Формат его предъявления таков:

GOTO Label

где Label означает метку той строки, на которую осуществляется переход. Метка может быть просто натуральным числом или символьным выражением, завершенным двоеточием, например, «nachalo:», «faktorial:» или «korni:».

Управление выполнением программы по этому оператору (или, говорят, по предъявлению этого оператора, т.е. когда оператор появится в начале строки или, после двоеточия, даже в середине ее или конце) безусловно переходит на строку помеченную меткой. Таким образом, если оператор перехода посылает на метку строки выше себя, и между такой меткой и им самим нет ничего, что может помешать управлению снова добраться до этого GOTO, то мы будем иметь классический пример зацикливания.

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

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

Слово IF переводится как «если», а THEN -- как «то» или «тогда». Краткий формат оператора:

IF condition THEN action

где condition означает условие, например, raznost=1, i<10, или k>=2 и т.д., а action -- действие (например переход на строку с определенной меткой, или печать, или что-то еще).

Более полный формат этого оператора предусматривает множественность и условий и действий:

IF condition1 THEN

[statementblock-1]

[ELSEIF condition2 THEN

[statementblock-2]]

… … … …

[ELSE

statementblock-n]]

END IF

или

IF condition THEN statements [ELSE statements]

Здесь под

condition1 подразумевается любое выражение, которое можно оценить как истинное (ненулевое) или ложное (нулевое)

statementblock-1

statementblock-2

statementblock-n

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

statements

подразумеваются один или более операторов, разделенных двоеточием.

Пример:

INPUT "1 or 2? ", i%

IF i% = 1 OR i% = 2 THEN

PRINT "OK"

ELSE

PRINT "Out of range"

END IF

Эта программка просит ввести 1 или 2. Если вы слушаетесь и вводите 1 или 2, она печатает «ОК», в противном случае сообщает вам «Вне пределов».

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

20 CLS ` polet samoleta

print “ polet samoleta”

30 input “vvedi rasstoyaniye ”;s

if s>10000 then print “a viza est'?”: goto 30

if s<30 then print “peshkom doidesh'!”: goto 30

40 input “vvedi skorost' ”;v

if v>1200 then print “Gde brali MiG-24?”: goto 40

if v<70 then print “voz'mite velosiped”: goto 40

t=s/v

min=(t-int(t))*60

sec=(min-int(min))*60

print «vremya v puti»

print int(t);”chasov”,int(min);”minut”; sec; “sekund”

input «Eshcho poletaem? Da - vvedi odin. Net -drugoye chislo», ask

if ask = 1 then goto 20

cls

print

print

print

print «Schastlivogo puti!»

end

??Написав и отладив программу, вы освоите азы использования оператора IF…THEN.

Задача. Попробуйте использовать иной формат оператора IF…THEN.

Вопросы. 1) Что означает переменная ask в последней части программы? 2) Не запуская программу, объясните как она будет работать. 3) Почему в самом начале стоит метка 20 и для чего она нужна? 4) Почему мы пишем min=(t-int(t))*60 и что это нам дает? 5) Зачем нужна функция int(t)и как она действует на переменную t?

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

Решение.

nachalo: CLS `programma dlya resheniya kv. ur-ya

print “ Reshaem kvadrantoya uravneniye”

print “ 2”

print “ax + bx + c = 0”

input “vvedi a=”;a

input “vvedi b=”;b

input “vvedi c=”;c

dskr=b^2-4*a*c

ch1=-b/(2*a):ch2=(sqr(abs(dskr))/(2*a)

if dskr>0 then gosub real

if dskr=0 then gosub odin

if dskr<0 then gosub compl

input “eshcho reshem? DA=1. Net=2”; vybor

if vybor=1 then goto nachalo

cls

print “spasibo za ispolzovaniye porgammy”

end

real: print “Imeem 2 veshch. kornya,

print “x1=”;ch1-ch2,”x2=”;ch1+ch2

return

odin: print “Imeem 1 veshch. koren',

print “x1=x2=”;ch1

return

compl: print “Imeem 2 compleksnykh kornya,

print “x1=”;ch1;”-i*”;ch2,”x2=”;ch1;”+i*”;ch2

Внимательный читатель увидит здесь два новых оператора -- GOSUB вместо GOTO и tot какой-то оператор RETURN. Оператор GOSUB Label не просто отсылает управление на строку с меткой Label, но и ждет затем появления своей второй половины -- строки RETURN (от английского «вернуться»).

Такой переход похож на безусловный, но обладает дополнительным свойством: управление не просто передается на строку Label: , но и спускается все ниже до тех пор, пока не появится строка RETURN. После этого управление передается на строку, сразу следующую за той, на которой стоял GOSUB и даже на тот оператор, который стоит на той же строке, что и GOSUB, но сразу после (GOSUB:) -- двоеточия! Вообще говоря, GOSUB происходит от GO to SUBroutine (routine = программа, subroutine = подпрограмма).

На возможный вопрос «А чего это мы END в середине программы поставили?» ответ будет таким. Оператор GOSUB...RETURN, вообще говоря, является оператором перехода на подпрограмму (т.е. относительно самостоятельный блок программы). Для того, чтобы выполнение и адресация на подпрограммы была разумной, следует выносить их НИЖЕ ОСНОВНОГО БЛОКА программы. Они (подпрограммы) становятся такими самостоятельными программками, у которых «голова» находится в теле большой программы, а «концом» является как раз оператор RETURN, который, фактически, завершает выполнение подпрограммы и возвращает управление на то место, с которого его передали вниз GOSUBом. Ниже мы приведем пример более слабого решения, в котором GOSUB не используется.

nachalo: CLS `resheniye kv. ur-ya

print “ Reshaem kv. ur-e

print “ 2”

print “ax + bx + c = 0”

input “vvedi a=”;a

input “vvedi b=”;b

input “vvedi c=”;c

dskr=b^2-4*a*c

ch1=-b/(2*a):ch2=(sqr(abs(dskr))/(2*a))

if dskr>0 then

print “2 veshch. kornya”

print “x1=”;ch1-ch2,”x2=”;ch1+ch2

elseif dskr=0 then

print “Imeem 1 veshch. koren',

print “x1=x2=”;ch1

elseif dskr<0 then

print “Imeem 2 compleksnykh kornya,

print “x1=”;ch1;”i*”;ch2,”x2=”;ch1;”+i*”;ch2

input “eshcho reshem? DA=1. Net=2”; vybor

if vybor=1 then goto nachalo

cls

print “spasibo za ispolzovaniye porgammy”

end

Ура, мы поместили подпрограммы внутри программы! Увы, это лишь потому, что подпрограммы очень простенькие… Что выбирать? Ответ такой же, как и со знанием иностранных языков -- нужно знать и то, и другое!

5. Организация циклов

Для того, чтобы пояснить, что такое цикл, рассмотрим такой пример.

Говорят, что когда-то великий математик Эйлер был маленьким и учился в школе. В один прекрасный день преподаватель математики, имея плохое состояние или настроение, начал урок с задания: «А сегодня, господа ученики, вы должны просуммировать все числа от 1 до 100» и уселся в креслах. Маленький Эйлер через несколько минут поднял руку: «Господин учитель, а результат 5050?». Учитель посмотрел в свои записи и спросил: «А как ты это сосчитал?». Эйлер ответил: «Если записать все числа от одного до ста, а потом снизу приписать их же, но только наоборот, то в каждом столбике будет 1+100=2+99=3+98=…=100+1=101. Наверху мы всякий раз добавляем единицу, а внизу отнимаем, поэтому сумма столбика остается той же. Таких столбиков 100, значит, все вместе будет 101*100. Но так как мы брали две одинаковые строчки, то сумма чисел от 1 до 100 будет половина от этого, т.е. ((1+100)*100)/2=5050».

Говорят, правда, что числа были не от 1 до 100, а еще похуже. Однако, разобрав мысли Эйлера, мы можем заметить, как и он, что всякое новое число увеличивается на единицу. Мы сейчас смогли бы написать программу, которая считает числа от 1 до 100, например:

SUM=1+2+3+4+5+6+7+8+9+10+…

print SUM

Н-да… длинновато получается. Проще на счетах. Хорошо, давайте установим некоторое накопительное повторяющееся выражение

SUM =SUM+1

Тогда в ящик SUM при каждом исполнении такой строки будет добавляться единица. Но нужно уметь … остановиться, то есть сделать эту операцию ровно сто раз. Здесь и возникает так называемый «счетчик». Его можно строить так: как только операция добавления единицы в переменную SUM совершается, так счетчик растет ровно на единицу. При достижении этим счетчиком значения 100 действия прекращаются.

i=0

20 i=i+1

sum=sum+1

if i<100 then goto 20

print sum, i

Или иначе

i=101

20 i=i-1

sum=sum+1

if i>0 then goto 20

print sum, i

??Стоит ли говорить, что программки не работают правильно? Отладить!

В последнем случае возникает вопрос: а сто ли раз выполняется действие суммирования? Попытайтесь ответить на него, просто подумав, и не загружая компьютер. Затем придумайте способ выяснить ваши подозрения каким-то образом на РС.

Еще один интересный объект для нахождения -- это факториал. Факториал натурального числа определяется как произведение всех натуральных чисел от одного до этого заданного числа, т.е.

.

Роль факториала очень велика (вы, вероятно, помните, что без него не обходились ни формула Тейлора, ни коэффициенты бинома Ньютона, ни определители).

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

Проверить, справедливо ли или другом начальном ?

Если да, то, предположив, что предложение верно при некотором , ДОКАЗАТЬ, что тогда оно будет выполняться и при .

Рассуждения в последнем, третьем пункте довольно просты: по пункту 1) имеем, что предложение справедливо при ; но по 2) оно верно и при , следовательно и при и так далее до бесконечности.

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

Число разных комбинаций выхода 6 волейболистов на площадку равно 6! = 1·2·3·4·5·6 = 720 (не правда ли, впечатляет!). Напомню, что число различных вариантов рассадки 25 студентов на 25 местах в одной и той же аудитории как раз равно 25!, что представляет величину 15512100433309859840000001.55·1025. Это больше, чем число Авогадро NA = 6.0221367·1023 mol-1.

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


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

  • Широкое использование компьютерных и информационных технологий. Концепции типов данных. Алгоритмы сортировки одномерных массивов. Описание двумерного массива Паскаля. Методы доступа к элементам массивов. Индексные, динамические и гетерогенные массивы.

    курсовая работа [66,3 K], добавлен 07.12.2010

  • Запись в файл и чтение в С++. Общее понятие о структуре. Многомерные и двумерные массивы. Логика работы программы. Схема алгоритма функции Main. Определение суммарного заработка, сотрудника с наибольшей зарплатой. Создание новой базы, листинг программы.

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

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

    лабораторная работа [32,6 K], добавлен 06.07.2009

  • Объявление, выделение, освобождение памяти под динамические массивы. Обращение к элементам. Решение задач с использованием динамических массивов на языке C++. Разработка и реализация программы для формирования и обработки динамического двумерного массива.

    курсовая работа [813,4 K], добавлен 13.06.2014

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

    курсовая работа [32,3 K], добавлен 19.01.2009

  • Аппаратные и программные RAID-массивы. Расчет объема массива. Временные затраты на расчет и запись контрольных сумм. Пример распределения файлов по JBOD-массиву. Вероятности отказа каждого диска в массиве. Сравнение стандартных уровней RAID-массивов.

    курсовая работа [3,0 M], добавлен 28.03.2011

  • Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.

    практическая работа [146,3 K], добавлен 23.01.2015

  • Значение и применение персонального компьютера и программного обеспечения в профессиональной деятельности. Перечень и содержание работы в системе программирования Pascal и Delphi. Условные операторы, массивы и строки. Общая схема работы с файлами.

    отчет по практике [642,2 K], добавлен 04.06.2013

  • Понятие и функциональные возможности индексных массивов, принципы их формирования. Особенности использования функции array, range. Ассоциативные массивы, исследование их преимуществ и недостатков, этапы создания. Просмотр массива с помощью цикла.

    презентация [144,3 K], добавлен 21.06.2014

  • Решение задач, прямо связанных с применением циклов и массивов. Условия применения различных видов циклической структуры. Операторы цикла с предусловием while, постусловием do-while и for. Особенности работы с одномерными и двумерными массивами.

    курсовая работа [1,1 M], добавлен 31.08.2019

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