Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 1Работа в системе программирования Borlnd С 1

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

Лабораторная работа 1
Работа в системе программирования Borland С

1. Цель работы

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

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

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

2. Подготовка каталога и запуск системы программирования

    Система программирования Borland C++ состоит из большого числа файлов, хранение которых структурировано по каталогам. В то время, когда готовятся эти материалы, корневой каталог системы программирования в нашей лаборатории:

    S:\DOS\BC

    Остальные каталоги являются подкаталогами в этом каталоге. Основные из них:

S:\DOS\BC\BIN

- в этом подкаталоге размещены программные модули системы программирования, подсказка и т.д.

S:\DOS\BC\INCLUDE

- в этом подкаталоге размещены файлы-заголовки с описаниями стандартных функций системы программирования.

S:\DOS\BC\LIB

- в этом подкаталоге размещены у библиотеки стандартных функций системы программирования.

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

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

  •  создать собственный рабочий каталог, например: H:\WORK.
  •  создать в этом каталоге текстовый файл с именем bc.bat и записать в него команду запуска системы программирования:
        
    S:\DOS\BC\BIN\BC.EXE 

Options->Directories

В каталоге BIN должны находиться только файла фирмы Borland от 10 июня 1992 г.

  •  копировать в рабочий каталог такие файлы из каталога S:\DOS\BC\BIN:
        
    tlink.cfg, turboc.cfg, tcdef.dpr, tcdef.dsk, tcconfig.tc 
  •  проверить атрибуты этих файлов на новом месте; если для каких-то из них установлен атрибут R (только чтение), надо снять этот атрибут.

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

3. Настройка рабочей среды

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

    3.1. Установка каталогов

    Выберите в Главном Меню пункт Options, в том меню, которое выплывет затем, выберите пункт Directories... (далее последовательность выборов из меню мы представляем в виде: Главное Меню -> Options -> Directories...) .

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Include Directories

S:\DOS\BC\INCLUDE

Library Directories

S:\DOS\BC\LIB

Output Directory

<пусто>

Source Directory

<пусто>

    После установки значений "нажмите" кнопку OK.

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

    3.2. Параметры компиляции

    Для настройки параметров компиляции выполните такие действия:

    1). Выберите: Главное Меню -> Options -> Compiler -> Code generation...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Model

Small

Options

<пусто>

Assume SS equal DS

Default for memory model

Defines

<пусто>

    После установки значений "нажмите" кнопку OK.

    2). Выберите: Главное Меню - > Options - > Compiler -> Advanced code generation...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Floating Point

8087

Instruction Set

8088/8086

Options

Generate underbase
Debug info in OBJ's
Fast floating point

    После установки значений "нажмите" кнопку OK.

    3). Выберите: Главное Меню -> Options -> Compiler -> Entry/Exit Code...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Prolog/epilog Code Generation

DOS standard

Calling Convention

C

Stack Options

Standard stack frame
Test stack overflow

    После установки значений "нажмите" кнопку OK. 4). Выберите: Главное Меню -> Options -> Compiler -> Source...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Keywords

Borland C++

Source Options

Nested comments

Identifier Length

32

    После установки значений "нажмите" кнопку OK.

    3.3. Параметры программы Make

    Выберите: Главное Меню -> Options -> Make ...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Break Make On

Errors

After Compiler

Run Linker

Generate Import Library

No

    После установки значений "нажмите" кнопку OK.

    3.4. Параметры компоновщика

    1). Выберите: Главное Меню -> Options -> Linker -> Settings ...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Map File

Off

Output

Standard DOS EXE

Options

Default libraries
"No stack" warning
Case-sensitive link

    После установки значений "нажмите" кнопку OK.

    2). Выберите: Главное Меню -> Options -> Linker -> Libraries ...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Libraries

<пусто>

Container Class Library

None

ObjectWindows Library

None

Standard Run-Time Libraries

Static

    После установки значений "нажмите" кнопку OK.

    3.5. Параметры отладчика

    Выберите: Главное Меню -> Options - > Debugger...

    В том окне, которое затем появится на экране, установите такие значения в полях:

Поле

Значение

Source Debugging

On

Display Swapping

Smart

Program Heap Size

64 Kbytes

    После установки значений "нажмите" кнопку OK.

    3.6. Сохранение параметров среды

    Выберите Главное Меню -> Options -> Save...

    В том окне, которое затем появится на экране, "нажмите" кнопку OK.

4. Пользование подсказкой

    Система программирования Borland C++ имеет мощную систему онлайновой подсказки, которая очень полезна, особенно- для начинающего программиста.

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

    Первая возможность обращения к подсказке - через Главное Меню -> Help. В том меню, которое выплывает затем, самыми полезными являются пункты Contents и Index.

    Пункт Contents выводит на экран тематический список разделов, по которым можно получить подсказку. Из всех этих разделов прежде всего мы рекомендуем:

  •  How to Use Help - как пользоваться подсказкой;
  •  Menus and Hot Keys - меню и горячие клавиши;
  •  Editor Commands - команды редактора;
  •  Borland C++ Language - язык Borland C++;
  •  Error Messages - сообщения об ошибках;
  •  Functions - функции;
  •  Header Files - файлы заголовков.

    Выбор любого из этих разделов приводит к появлению списка подразделов и так далее.

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

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

    По клавише F1 Вы получаете подсказку по активному на данный момент меню или окну.

    Комбинацией Ctrl+F1 можно пользоваться только в активном окне редактора. Если при нажатии этой комбинации курсор находится на каком-то ключевом слове или на функции, то на экран выводится подробная подсказка по этому ключевому слову или функции. В противном случае действие этой комбинации аналогично Главное Меню -> Help -> Index.

5. Создание, редактирование и сохранение программы

    Выберите Главное Меню -> File -> New. У вас на экране откроется пустое окно редактора с заголовком 00.CPP. В этом окне наберите текст программы, приведенный ниже (нумерацию строк, которая дана слева, набирать не надо).

1   #include <stdio.h>

2   int main(void) {

3    int a, b, c, d, x, y;

4      a=1;

5      b=2;

6      c=a+b;

7      d=a*b;

 8      if (c==d) {

9         x=100;

10         y=200;

11         }

12      else {

13         x=200;

14         y=100;

15         }

16      printf("%d %d\n",x,y);

17      return 0;

18   }

    При наборе и последующем редактировании текста шире используйте специальные клавиши и комбинации клавиш, такие как: Home, End, Ctrl<-, Ctrl->, Ctrl+Y и др. Также полезными могут быть блочные команды: Ctrl+K B (выделить начало блока), Ctrl+K K (выделить конец блока), Ctrl+K C (копировать блок), Ctrl+K V (переместить блок), Ctrl+K H (отменить выделение). Подробную подсказку по специальным клавишам и комбинациям можно получить по Главное Меню -> Help -> Contents -> Editor Commands.

    Текст, который Вы набираете, сохраняется в оперативной памяти, поэтому если во время набора возникнет какая-то авария (например, выключение питания), все, что Вы набрали, будет потеряно. Чтобы избежать такой опасности, нужно сохранить текст в файле на внешней памяти. Набрав несколько первых строк, сохраните текст. Для этого выполните: Главное Меню -> File -> Save as... . При этом у Вас на экране появляется окно Save File As. В верхнем поле этого окна наберите имя, под которым Вы хотите сохранить текст программы. Если Вы наберете только имя (без расширения) система автоматично добавит к имени Вашей программы расширение CPP - стандартное расширение для программ, написанных на языке C++. Мы рекомендуем явно задавать расширение C, например: myfile.c, так как программы, которые мы пишем в этой части лабораторного практикума, ограничиваются возможностями базового языка C. Набрав имя, нажмите на клавишу Enter или "нажмите" на кнопку OK.

    При первом сохранении программы Вы дали ей имя (обратите внимание - это имя теперь является заголовком окна редактора). Далее после каждого добавления нескольких строк или при внесении некоторого количества изменений в текст сохраняйте программу под тем же именем. Для этого достаточно выполнить: Главное Меню -> File -> Save или нажать клавишу F2.

    Впоследствии, если Вам нужно будет снова загрузить в редактор текст той же программы, выполните: Главное Меню -> File -> Open (или нажмите клавишу F3). Вы получите окно Open a File, которое очень похоже на окно Save File As. В верхнем поле этого окна выводится маска для файлов, из которых можно выбирать файл для открытия, в нижнем - список файлов, имена которых соответствуют этой маске. Меняя маску в верхнем поле, Вы изменяете состав списка в нижнем. Достигнув того, что ы нижнем поле будет именно тот список, который Вам нужен, перейдите в нижнее поле. Выберите нужный файл и нажмите на клавишу Enter или "нажмите" на кнопку OK. Файл, который Вы выбрали, откроется в окне редактора.

6. Компиляция и выполнение программы

    Закончив набор текста и сохранив файл программы на диске, выполните компиляцию программы. Для этого выполните: Главное Меню -> Compile -> Compile или нажмите комбинацию клавиш Alt+F9. На экране появляется окно Compiling, в котором отображается ход компиляции. При нормальном завершении компиляции в нижней строке этого окна должно быть выведено:

    Success:      Press any key 

    Если там выводится:

    Errors:      Press any key
или:

    Warnings:      Press any key
- ваша программа требует коррекции.

    Работу с диагностикой ошибок мы подробнее рассмотрим в следующем разделе. После того, как Вы откомпилировали программу без ошибок, запустите ее на выполнение. Для этого выполните: Главное Меню -> Run -> Run или нажмите комбинацию клавиш Ctrl+F9. На экране появляется окно Linking, в котором отображается ход компоновки. При нормальном завершении компоновки это окно пропадает само собой и выполняется программа.

    Если же в этому окне выводится:

    Errors:      Press any key
- ваша программа требует коррекции.

    Если Ваша программа не требует ввода данных (а именно такова та программа, с которой мы сейчас работаем), Вы даже не успеете заметить, как эта программа выполняется. Чтобы посмотреть результаты, которые программа выдала на экран, выполните: Главное Меню -> Window -> User screen или нажмите комбинацию клавиш Alt+F5. Вы увидите черный экран с тем, что вывела Ваша программа (в нашем случае это должно быть: 200 100). Чтобы выйти из режима просмотра результатов, нажмите любую клавишу.

    Проверьте содержание Вашего рабочего каталога. Если текст Вашей программы был сохранен в файле myfile.c, то после компиляции в каталоге должен появится файл myfile.obj, а после выполнения - еще и myfile.exe.

7. Диагностика ошибок и предупреждения компилятора и компоновщика

    На этом этапе выполнения лабораторной работы мы предлагаем Вам поэкспериментировать с сообщениями компилятора и компоновщика. Предварительно рекомендуем сделать копию файла программы. Для этого выполните Главное Меню -> File -> Save as... и введите какое-то новое имя программы, например: myfilex.c. Теперь у Вас есть две копии программы в двух файлах (myfile.c и myfilex.c). Одна копия (пусть это будет myfile.c) будет хранить правильную версию программы, а в другую (это будет myfilex.c) мы нарочно будем вводить ошибки.

    Откройте в текстовом редакторе файл myfilex.c. Внесите такие изменения в текст программы (тут и далее мы указываем номера строк, в которые нужно внести изменения):

6         c=a+b1;

9         x=100; a123

18   /*}*/

    Запустите программу на компиляцию (Ctrl+F9). Вы получите:

    Errors:      Press any key в окне Compiling. Когда Вы нажмете любую клавишу, внизу экрана откроется окно Message с таким содержимым:

Compiling MYFILEX.C:

Error

MYFILEX.C

6: Undefined symbol 'b1'

Error

MYFILEX.C

10: Undefined symbol 'a123'

Error

MYFILEX.C

10: Statement missing ;

Error

MYFILEX.C

17: Compound statement missing }

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

    Сообщение к строке 6 - "Неопределенный символ 'b1'". В этом операторе используется переменная с таким именем, которой нет среди объявленных переменных.

    Первое сообщение к строке 10 - "Неопределенный символ 'a123'". Текст a123 похож на имя переменной, но такая переменная не объявлена. Другое сообщение к строке 10 - "В операторе отсутствует ;" . Текст a123 может быть отдельным оператором, но в нем нет признака конца оператора. Обратите внимание на то, что хотя ошибку мы внесли в строку 9, сообщение выдается к строке 10, поскольку ошибка была обнаружена только при обработке этой строки.

    Сообщение к строке 17 - "В составном операторе отсутствует }" - компилятор выявил непарность операторных скобок - { }. Где бы ни была пропущена закрывающая операторная скобка, ее отсутствие может быть обнаружено только на последнем операторе программы.

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

    Восстановите правильное содержимое файла myfilex.c. (Это можно сделать, открыв в редакторе файл myfile.c и вновь сохранив его с именем myfilex.c. При этом Вы получите предупреждение о том, чтоо файл myfilex.c будет изменен, на которое Вам нужно ответить Yes.) Внесите такие изменения в текст программы:

3    int a, b, c, d, x, y, z=2;

4      a=b;

8      if (c=d) {

    Запустите программу на компиляцию (Ctrl+F9). Вы получите:

    Warnings: Press any key
в окне Compiling. Когда Вы нажмете любую клавишу, внизу экрана откроется окно Message с таким текстом:

Compiling MYFILEX.C:

Warning

MYFILEX.C

4: Possible use of 'b' before definition

Warning

MYFILEX.C

8: Possible incorrect assignment

Warning

MYFILEX2EC

18: 'z' is assigned value that is never used

Warning

MYFILEX.C

18: 'c' is assigned value that is never used

    Это - предупреждения компилятора.

    Предупреждение к строке 4 - "Возможно использование 'b' до определения". В этом операторе значение переменной b присваивается переменной a, но какое значение имеет b на этот момент выполнения программы - неизвестно.

    Предупреждение к строке 8 - "Возможно некорректное присваивание". Выражение c=d имеет смысл: "присвоить переменной с значение переменной d". Выражение c==d, которое применено в правильной программе, имеет смысл: "сравнить переменные c и d". Поскольку выражение включено в условный оператор, компилятор имеет основания предполагать, что тут должно быть сравнение, а не присваивания.

    Предупреждение к строке 18: "Переменной 'z' присваивается значение, которое нигде не используется". В операторе 3 мы дали переменной z начальное значение 2. Но далее в программе значение z нигде ничему не присваивается и ни с чем не сравнивается.

    Еще одно такое же предупреждение к строке 18 относится к переменной c. Присваивание значения этой переменной происходит в строке 8. Ситуация неиспользования значения может быть выявлена только в конце программы.

    Вы можете получить не все предупреждения из тех, которые тут перечислены. При настройке среды можно отменить или возобновить выдачу тех или иных предупреждений. Это делается через: Главное Меню -> Options -> Compiler -> Messages.

    Восстановите правильное содержание файла myfilex.c. Внесите такие изменения в текст программы:

4      a=1; abc();

    Запустите программу на выполнение (F9).

    Вы получите:

    Errors: Press any key
в окне Linking. В окне Message будет:

Linking MYFILEX.EXE:

Linker Error:

Undefined symbol _abc in module MYFILEX.C

    Это - сообщение компоновщика. "Неопределенный символ _abc в модуле MYFILEX.C". Синтаксически оператор abc(); является обращением к функции, именно так его трактует компилятор. Но когда компоновщик пытается найти функцию с таким именем в доступных ему модулях и библиотеках, он ее не находит, про что и сообщает нам.

    Если Вы запустите отдельным шагом компиляцию той же программы, Вы получите:

Compiling MYFILEX.C:

Warning

MYFILEX.C

4: Call to function 'abc' with no prototype

    Компилятор предупреждает о том, что в программе есть "Вызов функции 'abc' без прототипа".

8. Отладка программы

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

    Откройте в текстовом редакторе файл myfile.c.

    Выполните: Главное Меню -> Debug -> Watches -> Add watch (или нажмите комбинацию клавиш Ctrl+F7). В окне Add Watch, которое появится на экране, введите в поле Watch Expression имя переменной a. "Нажмите" кнопку OK. В нижней части экрана появится окно Watch, а в нем - "a: Undefined symbol 'a'".

    Повторите эти действия несколько раз, вводя в поле Watch Expression имена b, c, d. В окне Watch будут добавляться аналогичные сообщения. Этими действиями мы даем системе программирования инструкцию отслеживать и отображать в окне Watch текущие значения выбранных переменных программы. Поскольку программа еще не выполняется, эти переменные пока еще "неизвестны" системе программирования, о чем и свидетельствуют сообщения.

    Сделайте активным окно редактора и нажмите клавишу F8. В окне редактора цветом (скорее всего - голубым) будет выделена строка 2 текста программы. Это мы начали отладку нашей программы в пошаговом режиме. Еще раз нажмите клавишу F8. Выделение сместится на строку 4, а в окне будут отображаться какие-то значения переменных. Выполнение программы началось и эти переменные уже "известны", но их значения еще не установлены, поэтому они - какие-то случайные числа. Со следующим нажатием клавиши F8 значение переменной a изменится на 1. Каждое следующее нажатие клавиши F8 будет продвигать выполнение программы на оператор вперед, и в соответствии с выполнением операторов программы будут меняться значения переменных.

    Обратите внимание на то, что после строки 8 выполнение сразу же "перепрыгнет" на строку 13. Поскольку условие в условном операторе 8 не выполняется, выполнение обходит строки 9 - 12. Если Вы измените:

4    a=2;

    и снова выполните программу в пошаговом режиме, условие в строке 8 будет выполняться, следовательно, и выполнение программы пройдет через строки 9-10-11 и обойдет строки 12-15.

    Закончив выполнение программы, установите курсор на строку 8 и выполните: Главное Меню -> Debug -> Toggle breakpoint (или нажмите комбинацию клавиш (Ctrl+F8). Строка 8 выделится цветом (скорее всего - красным). Этим мы задали точку останова программы. Теперь запустите программу на выполнение (F9). Выполнение остановится на строке 8. При этом в окне Watch будут отображаться текущие значения переменных. Вы можете продолжить выполнение в пошаговом (F8) или в автоматическом режиме (F9).

    То меню, которое "выпадает" по Главное Меню -> Debug, дает возможность полностью управлять слежением за значениями и точками останова.

9. Выводы

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

Лабораторная работа 2
Базовые типы данных и ввод-вывод

1. Цель работы

     Целью лабораторной работы является получение практических навыков в работе с типами данных языка C и в использовании функций стандартного ввода-вывода.

2. Темы для предварительной проработки

  •  Типы данных языка C.
  •  Объявление переменных.
  •  Функции стандартного ввода-вывода.

3. Задание

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

4. Варианты индивидуальных заданий

Вариант 1

Некоторые виды антилоп

Название

Группа

Место обитания

Численность популяции

Джейран

A

Азия

30000

Гну

B

Африка

560000

Бейза

H

Африка

2500

Групи: А - настоящие антилопы, B - коровьи антилопы, H - лошадиные антилопи

Вариант 2

Фирмы - производители СКБД

Фирма

Количество. продуктов

Годовой объем продажи ($)

Часть рынка (%)

Oracle

1

2488000000

31.1

IBM

3

2392000000

29.9

Microsoft

2

1048000000

13.1

Примечание: по данным Gartner Group за 1999г

Вариант 3

Отдел кадров

Фамилия

Инициалы

Год рожд

Оклад

Иванов

И.И.

1975

517.50

Петренко

П.П.

1956

219.10

Паниковский

М.С.

1967

300.00

Примечание: оклад установлен по состоянию на 1 января 2000 года

Вариант 4

Ведомость деталей

Наименование

Тип

Количество

Вес 1 детали (г)

Фланец

З

3

450

Переходник

П

8

74

Станина

О

1

117050

Примечание: принято такое кодирование типов: О - оригинальная, П - покупная, З - заимствованная

Вариант 5

Характеристики ПЭВМ

Процессор

Частота (Mgz)

RAM (Mb)

Тип

Pentium-III

233

 

C

AMD-К6

166

 

C

PowerPC-620

2000

 

R

Тип: C - CISC-процессор, R - RISC-процессор

Вариант 6

Каталог библиотеки

Автор книги

Название

Год выпуска

Группа

Сенкевич

Потоп

1978

Х

Ландау

механіка

1989

У

Дойль

Сумчатые

1990

C

Примечание: Х - художественная литература; У - учебная литература; С - справочная литература

Вариант 7

Ведомость комплектуючих

Обозначение

Тип

Номинал

Количество

RT-11-24

R

100000

12

RT-11-24

R

50000

10

CGU-12K

C

17.5

3

Примечание: R - резистор; C - конденсатор

Вариант 8

Проекты поиска внеземных сигналов

Год

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

Диаметр антенны (м)

Рабочая частота (МГц)

1960

Дрейк

26

1420

1970

Троицкий

14

1875

1978

Хоровиц

300

1665

Примечание: наблюдались объекты от 2 звезд до нескольких галактик

Вариант 9

Офисные пакеты

Наименование

Производитель

Количество сост.частей

Цена ($)

Office

Microsoft

4

870

SmartSute

Lotus

5

1020

StarOffice

Sun

4

9

Примечание: возможно бесплатно получить продукт StarOffice через Internet

Вариант 10

Сельскохозяйственные культуры

Наименование

Тип

Посевная площадь (га)

Урожайность (ц/га)

Соя

Б

13000

45

Чумиза

З

8000

17

Рис

З

25650

24

Примечание: З - зерновые, Б - бобовые

Вариант 11

Ведомость спортивних состязаний

Фамилия участника

Код команды

Количество балов

Место в итоге

Баландин

С

123.7

2

Шишков

Ш

79.98

3

Кравченко

Д

134.8

1

Примечание: Д - "Динамо", С - "Спартак", Ш - "Шахтер"

Вариант 12

Ведомость общественного транспорта

Вид транспорта

╧ маршрута

Протяженность маршрута (км)

Время в дороге (мин)

Тр

12

27.55

75

Т-с

17

13.6

57

А

12а

57.3

117

Примечание: Тр - трамвай, Тс - троллейбус, А - автобус

Вариант 13

Приблизительное количество звезд разных спектральных классов в Галактике

Спектральный класс

Приблизительная масса (отн.Солнца)

Часть %

Численность

O

32

0.00002

55000

F

1.25

2.9

12000000000

M

0.2

73.2

293000000000

Примечание: не показаны данные для классов: B, A, G, K

Вариант 14

Время выполнения некоторых программ, которые применяют параллельные алгоритмы

Название прграммы

Количество строк кода

Время исп. на SGI Callenge (cек)

Время исп. на SGI Indy (cек)

OCEAN

1917

8.70

18.2

DYFESM

3386

6.95

22

TRFD

417

1.05

2.98

Примечание: SGI Callenge - ЦП R1000 196 MHz, 1.024 MB RAM SGI Indy - ЦП MIPS R4600 134 MHz, 64 MB RAM

Вариант 15

Конфигурация програмных средств информационных систем

Операционная система

СУБД

Мин.объем внешней памяти (MB)

Мин.объем оперативной памяти (MB

Приблизительная цена ($)

OS/2

DB2

130

22

3343

Windows/NT

SQLServer

230

24

2685

SCO/Unix

Oracle

110

48

3745

Примечание: принималась цена лицензии на 8 пользователей

Вариант 16

Сельскохозяйственные предприятия

Название

Вид собственности

Площадь земли (га)

Кол. работников

Заря

Д

300

120

Росинка

К

174

27

Петренко

Ч

56

6

Вид собственности: Д - государственная, Ч - частная, К - кооперативнfz

Вариант 17

Прайс-лист

Наименование товара

Тип товара

Цена за 1 шт (грн)

Минимальное количество в партии

Папка

К

4.75

4

Бумага

К

13.90

10

Калькулятор

О

411.00

1

Примечание: К - канцтовары, О - оргтехника

Вариант 18

Вязкость металлов в жидком состоянии

Вещество

Атомный номер

Температура (град.С)

Вязкость (кг/м*сек)

Алюминий

13

700

2.90

Висмут

83

304

1.65

Свинец

82

441

2.11

Примечание: данные даны для температуры плавления

Вариант 19

Коэффициенты теплопроводи мости материаллов

Вещество

Тип

Влажность (%)

Коэффициент

Алюминий

М

0-100

209.3

Стекловата

Т

0-100

0.035

Глина

Д

15-20

0.73

Примечание: М - металлы, Т - термоизоляционные материалы, Д - другие материалы

Вариант 20

Скорость звука в жидкостях

Вещество

Тип

Температура (град.С)

Скорость (м/сек)

Анилин

Ч

20

1656

Ртуть

Ч

20

1451

Кедровое

М

29

1406

Тип жидкости: Ч - чистое вещество, М - масло

Вариант 21

Температура перехода веществ в сверхпроводниковое состояние

Вещество

Тип

Температура

Zn

М

0.8-0.8

Pb-Au

П

2.0-7.3

NbC

С

10.1-10.5

Тип вещества: М - металл, П - сплав, С - соединение

Вариант 22

Сплавы с высоким сопротивлением

Сплав

Сопротивление

Темп.коэфф.сопр

Макс.температура

Константан

0.44

0.00001

500

Никелин

0.39

0.39

150

Фехраль

1.1

0.0001

900

Единицы измерения: сопротивление - ом*кв.мм/м. Коэффициент сопротивления - 1/град. Температура - град.С

Вариант 23

Свойства полупроводников

Вещество

Ширина запрещенной зоны

Движение электронов

Движение дырок

Бор

1.1

10

10

Телур

0.36

1700

1200

CdTe

1.45

450

100

Единицы измерения: ширина запрещенной зоны - эв; движение - кв.см/сек*в

Вариант 24

Элементарные частицы

Частица

Группа

Заряд

Масса покоя

Нейтрон

Н

0

940

Ка-плюс

М

+1

494

Електрон

Л

-1

0.511

Группы частиц: Г - гипероны, Н - нуклоны, М - мезоны, Л - лептоны

Вариант 25

Искуственно полученные элементы

Атомный номер

Название

Массовое число

Период полураспада (лет)

93

Нептуний

237

220000

97

Берклий

247

700

98

Калифорний

251

660

Вариант 26

Японские острова

Остров

Площадь (кв.км)

Кол. малых островов

Протяженность береговой линии (км)

Хонсю

230500

192

11875

Хоккайдо

78500

75

3072

Сикоку

18800

13

2946

 

Вариант 27

Прайс-лист

Код товара

Категория

Цена (грн)

Срок поставки (дн)

01-0018

К

11282

7

01-0033

С

170

1

02-0170

М

1735

14

Примечание: К - компьютеры, С - комплектующие, М - множительная техника

Вариант 28

Журнал регистрации аварий:

Название предприятия

Категорія

Утраты от аварии (тис.грн)

Срок простоя (дн)

Птицефабрика

1

12.7

4

Теплоцентраль

1

0.711

1

Автосервис

2

1770.15

38

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

Вариант 29

Ведомости о присвоении квалификации

Фамилия

Год рождения

Оценка результатов экзаменов

Присвоен уровень квалификации

Шевченко

1970

4.33

6

Розанов

1975

5.1

5

Панасюк

1966

3.07

3

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

Вариант 30

Буддийские монастыри Японии периода Нара

Название

Школа

Количество монахов

Площадь земли (га)

Тодайдзи

Т

220

368.8

Якусидзи

С

50

54.7

Дайандзи

Д

10

12.2

Примечание: Т - Тэндай; С - Сингон; Д - Дзедзицу

5. Пример решения задачи (вариант 30)

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

5.1.1. Общий метод решения
     В таблице, приведенной в индивидуальном задании, первая строка - общий заголовок таблицы, вторая - заголовки столбцов таблицы. Фактические данные составляют третью, четвертую и пятую строки. Шестая строка - примечания.

     Программа должна начинаться с ввода фактических данных. Для удобства оператора перед вводом на экран должно выводиться приглашение, в котором перечисляется, какие именно данные ожидает программа. За одно приглашение-ввод будет вводиться одна строка фактических данных таблицы. Т.е., приглашение-ввода должно повторяться трижды. Введенные данные будут сохраняться в переменных программы.

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

     Для формирования наглядного табличного вида можна применять символы '|' и '-'.

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

5.2. Определение переменных программы

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

     Название. Во всех фактических значениях этот столбец является символьной строкой из 8 символов. Т.е. для представления его в памяти переменные, в которых хранятся значения этого столбца, должны быть объявлены как:

char name1[9], name2[9], name3[9];

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

     Школа. Эти данные являются одним символом. Их объявление:

char sch1, sch2, sch3;

     Количество монахов. Эти данные являются целыми числами в диапазоне 10 - 220. Этот диапазон перекрывается диапазоном возможных значений типа unsigned short (диапазон этого типа: 0 - 255). Т.е. объявление соответственных переменных:

unsigned short cnt1, cnt2, cnt3;

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

float sq1, sq2, sq3;

5.3. Разработка текста программы

     Начинаем разработку текста програмы с заголовка главной функции main():

int main(void)

     Далее открывается тело функции и в нее включается описание переменных (см. п.5.2).

     Кодовая часть программы начинается с приглашения - вывода строки-константы:

printf("1. Введите: название, школу, количество, площадь >");

за которым считываются данные, вводимые оператором:

scanf("%s %c %d %f",name1, &sc1, &cnt1, &sq1);

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

#include <stdio.h>

При вводе строка вводится по спецификации типа %s, один символ - по спецификации типа %c, целое число - по спецификации типа %d, число с плавающей точкой - по спецификации типа %f. Спецификации разделяются пробелами, т.е. и данные при вводе должны разделятся пробелами или переходом на новую строку. В списке ввода перед всеми элементами кроме того, который вводится по %s, ставится знак &.

    Приглашение-ввод повторяется трижды, с разными переменными в списке ввода.

     Для формирования вывода следует подсчитать ширину каждого столбца. Ширина первого столбца определяется размером фактических данных в строке - 9 символьных мест, с учетом пробелов в начале и в конце - 11. Ширина остальных столбцов определяется шириной текста в заголовках столбцов и составляет соответственно 7, 11 и 13 символьных мест. Учитывая вертикальные линии ширина строки составляет 47 знакомест.

     Первая строка - горизонтальная линия, которая состоит из символа '-', повторенного 47 раз. Вторая строка - общий заголовок, дополненный до ширины 47 пробелами. Третья строка - еще одна горизонтальная линия. Четвертая и пятая строки - заголовки столбцов, каждый из них имеет установленную ширину. Шестая строка - еще одна горизонтальная линия.

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

printf("| %9s | %c | %-3d | %5.1f |\n", name1, sc1, cnt1, sq1);

     Значения имени выводятся по спецификации типа %s с шириной 9. Значения школы выводятся по спецификации типа %c. Поскольку значения в этом столбце выводится по центру столбца, перед и после него ставятся пробелы. Значения количества выводятся по спецификации типа %d с шириной 3, а площадь - %f с общей шириной 5 и одним знаком после точки. Значения в этих столбцах дополняются до нужной ширины пробелами. В столбце 3 ставится признак выравнивания по правому краю.

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

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

/*******************************************************/

/*           Лабораторная  работа ╧2                   */

/*          Типы данных и ввод-вывод                   */

/*        Пример выполнения. Вариант ╧30.              */

/*******************************************************/

#include <stdio.h>

int main(void) {

char name1[9], name2[9], name3[9];

char sc1, sc2, sc3;

unsigned short cnt1, cnt2, cnt3;

 float sq1, sq2, sq3;

/* Введение фактических данных*/

printf("1. Введите: название, школу, количество, площадь >");

 scanf("%s %c %d %f",name1, &sc1, &cnt1, &sq1);

 printf("2. Введите: название, школу, количество, площадь >");

 scanf("%s %c %d %f",name2, &sc2, &cnt2, &sq2);

 printf("3. Введите: название, школу, количество, площадь >");

 scanf("%s %c %d %f",name3, &sc3, &cnt3, &sq3);

 /* Вывод таблицы */

/* вывод заголовков */

printf("-----------------------------------------------\n");

printf("|Буддийские монастыри Японии периода Нара |\n");

printf("|---------------------------------------------|\n");

printf("| Название | Школа | Количество|Площадь земли|\n");

printf("|          |       |    монахов|    (га)     |\n");

printf("|----------|-------|-----------|-------------|\n");

/* вывод строк фактических данных */

printf("| %9s | %c | %3d | %-5.1f |\n", name1, sc1, cnt1, sq1);

 printf("| %9s | %c | %3d | %-5.1f |\n", name2, sc2, cnt2, sq2);

printf("| %9s | %c | %3d | %-5.1f |\n", name3, sc3, cnt3, sq3);

 /* вывод примечаний */

printf("|---------------------------------------------|\n");

printf("| Примечание: Т - Тэндай; С - Сингон;         |\n");

printf("|             Д - Дзедзицу                    |\n");

printf("-----------------------------------------------\n");

return 0;

}

5.4. Отладка программы

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

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

5.5. Результаты работы программы

При работе програмы на екран было выдано следущее:

1. Введите: название, школу, количество, площадь > Тодайдзи Т 220 368.8

2. Введите: название, школу, количество, площадь > Якусидзи С 50 54.7

3. Введите: название, школу, количество, площадь > Дайаедзи Д 10 12.2

----------------------------------------------

|Буддийские монастыри Японии периода Нара    |

|--------------------------------------------|

| Название | Школа | Количество|Площадь земли|

|          |       |  монахов  |    (га)     |

|----------|-------|-----------|-------------|

| Тодайдзи |   Т   |       220 | 368.8       |

| Якусидзи |   С   |        50 |  54.7       |

| Дайаедзи |   Д   |        10 |  12.2       |

|--------------------------------------------|

| Примечание: Т - Тендай; С - Сингон;        |

|             Д - Дзедзицу                   |

----------------------------------------------

5.6. Выводы

При выполнении лабораторной работы изучены вопросы:

  •  типы данных в языке C, объявление переменных в программе
  •  ввод и вывод данных, форматизации вывода.

Приложение 1. Базовые типы данных языка С

Название типа

Пояснения

Диапазон значений

short

Краткое целое число

-128 . . . 127

unsigned short

Краткое целое число без знака

0 . . . 255

int

Целое число

-32768 . . . 32767

unsigned int

Целое число

0 . . . 65535

long

Длинное целое число

-230 . . . 230-1

unsigned long

Длинное целое число без знака

0 . . . 231-1

char

Один символ

символы кода ASCII

char[ ]

Строка

float

Число с плавающей точкой

3.4 10-38 . . . 3.4 10+38

double

Число с плавающей точкой двойной точности

1.7 10-308 . . . 1.7 10+308

Приложение 2. Некоторые функции стандартного ввода-вывода

Функции стандартного ввода - вывода описаны в файле stdio.h.

printf() - форматный вывод на экран:

int printf(char *format, <список вывода>);

Первый параметр является символьной строкой, которая задает спецификации формата. Остальные параметры - перечисление переменных и выражений, значения которых выводятся. Каждая спецификация формата имеет вид (параметры в квадратных скобках необязательны):

%[flags][width][.prec][F|N|h|l]type

где

type -

тип спецификации

d или i

целое десятичное число со знаком

u

десятичное число без знака

x

целое 16-ричное число без знака

f

число с плавающей точкой

e

число в E-форме

g

число с плавающей точкой или в E-форме

c

один символ

s

Строка

%

символ %

flags -

признак выравнивания:

+ или пусто

выравнивание по правому краю

-

выравнивание по левому краю

width -

целое число – общая ширина поля. Если это число начинается с цифры 0, вывод дополняется слева нулями до заданной ширины. В заданную ширину входят все символы вывода, включая знак, дробную часть и т.п.

prec -

целое число, количество знаков после точки при выводе чисел с плавающей точкой

F -

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

N -

соответственный елемент списка вывода является близким указателем

l -

соответствующий елемент списка вывода является long int или double

scanf() - форматный ввод с клавиатуры:

int scanf(char *format, <список ввода>);

Первый параметр является символьной строкой, которая задает спецификации формата (см. функцию printf()). Остальные параметры - перечисление адресов переменных, в которые вводятся данные. В этом списке перед именами всех переменных, кроме тех, которые вводятся по спецификации типа %s, должен стоять символ &. 

putchar() - вывод одного символа на экран:

int putchar(int ch);

Параметр функции - код символа, который выводится. При успешном выполнении функция возвращает этот же код, при неуспешном - EOF.

getchar() - ввод одного символа с клавиатуры:

int getchar(void);

Функция возвращает код введенного символа.

puts() - вывод строки символов на экран:

int puts(char *string);

Параметр функции - указатель на начало той строки, из которой выводятся данные. Функция возвращает количество выведенных символов.

gets() - ввод строки символов с клавиатуры:

 

char *gets(char *string);

Параметр функции - указатель на начало той строки, в которую вводятся данные. Функция возвращает тот же самый указатель.




1. Следуя античным источникам большинство исследователей полагает что Платон родился в 428 427 годах до н
2. методические рекомендации по выполнению работ на персональном компьютере перечень рекомендуемой литератур
3. Lowpss filter LPF. 2
4. Саратов происходит от 2х тюркских слов-
5. Реферат- Методы биоиндикации
6. 13 МНТ13 МПМ13 23
7. Тема- Значение саморегулируемых организаций СРО в системе правового регулирования оценочной деятельности
8. Роль формирования связей с общественностью в деятельности ВУЗов
9. Тема 8. Основи підприємницької діяльності 1
10. темах. Особенности и признаки интеллектуальности информационных систем.html
11. Основы тылового обеспечения танковых частей и подразделений
12. Наиболее характерный аспект этого подхода состоит в том что он акцентирует роль познания как фактора опоср
13. Тема- Українська держава Павла Скоропадського Мета- Навчальна- Розкрити обставини приходу до влади Павл
14. Центр развития ребёнка ~ детский сад 2 Развитие ПРОЕКТ Использование новых ин
15. Ступени были подведены итоги Всероссийского конкурса проектов по контролю качества образования в вузах к
16. Формирование информационной компетентности младших школьников средствами современного урока
17.  У этого термина существуют и другие значения см
18. ISDN BISDN По планам разработчиков единообразие обеспечиваемое TM будет состоять в том что одна транспортна
19. статья для тех людей которым не нужно объяснять что такое цели и зачем они нужны
20. ЭФФЕКТ ОТ ВНЕДРЕНИЯ РАБОЧЕГО ИНСТРУМЕНТА – ГАЙКОВЕРТА