- •Напишите программу реализации системной функции CreateConsoleScreenBuffer
- •Классификация:
- •Система контекстной помощи
- •По модели данных[править | править вики-текст]
- •По степени распределённости[править | править вики-текст]
- •Основные сведения[править | править вики-текст]
- •Ассоциации[править | править вики-текст]
- •Агрегация[править | править вики-текст]
- •Композиция[править | править вики-текст]
- •Обобщение (наследование)[править | править вики-текст]
- •Реализация[править | править вики-текст]
- •Зависимость[править | править вики-текст]
- •Уточнения отношений[править | править вики-текст]
- •Уровни схемы базы данных[править | править вики-текст]
- •Иды требований по характеру[править | править вики-текст]
- •Источники требований[править | править вики-текст]
- •Вид и состав требований тз[править | править вики-текст]
- •Напишите программу реализации системной функции CreateConsoleScreenBuffer
- •9. Экономическая часть проекта
- •9.1. Технико-экономический анализ и оценка показателей экономической эффективности проекта.
- •9.2. Расчёт себестоимости электроэнергии
- •Развитие языков программирования и средств разработки
- •Напишите программу реализации системной функции CreateConsoleScreenBuffer
- •Анализ требований к проекту
- •Проектирование
- •Реализация
- •Тестирование продукта
- •Внедрение и поддержка
- •По целям исследований
- •По особенностям представления
- •Свойства парадигм программирования
- •Инициализация объектов данных[править | править вики-текст]
- •Программирование арифметических операций[править | править вики-текст]
- •Циклы[править | править вики-текст]
- •Инвариантные фрагменты кода[править | править вики-текст]
Свойства парадигм программирования
Парадигма |
Ключевой концепт |
Программа |
Выполнение программы |
Результат |
Императивная |
Команда |
Последова-тельность команд |
Исполнение команд |
Итоговое состояние памяти |
Функциональная |
Функция |
Набор функций |
Вычисление функций |
Значение главной функции |
Логическая |
Предикат |
Логические формулы |
Логическое доказатель-ство |
Результат доказатель-ства |
Объектно-ориентированная |
Объект |
Набор классов объектов |
Обмен сообщениями между объектами |
Результирую-щее состояние объектов |
Большинство современных языков [3] аккумулируют в себе элементы и приемы нескольких стилей, и тем не менее их можно классифицировать по основному их ядру, реализующему приёмы определенной парадигмы программирования, в частности:
Императивная парадигма: языки Паскаль, Си, Ада;
Функциональная парадигма: языки Лисп, Рефал, Плэнер, Schema, Haskel;
Логическая парадигма: языки Пролог и Datalog;
Объектно-ориентированная парадигма: Smalltalk, Eiffel.
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №76
по специальности 5B0704 - Вычислительная техника и программное обеспечение
Напишите функцию поиска количества максимальных элементов в массиве
# include <stdio.h>
# include <stdlib.h>
const n=10;
int mas[n];
int max,kol;
int poisk(int a[])
{ int k=1;
max=a[0];
for (int i=0;i<n;i++)
if (a[i]>max) { max=a[i]; k=1;}
else if (a[i]==max) k++;
return k;
}
void main()
{
randomize();
for (int i=0;i<n;i++)
mas[i]=5+random(10);
kol=poisk(mas);
}
Напишите программу реализации системной функции CopyFile
#include "stdafx.h"
#include "windows.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CopyFile(L"C:\\1.txt",L"C:\\2.txt",true);
cout<<"all done\n";
return 0;}
Создайте запрос для вывода фамилии, номера отдела и оклада всех служащих, чей номер отдела и оклад совпадают с номером отдела и окладом любого служащего, зарабатывающего комиссионные.
select e.department_id as "Department", e.last_name as "Employee", f.last_name as "collegue"
from EMPLOYEES e join employees f
on (e.department_id=f.department_id)
where e.employee_id<>f.employee_id
order by e.department_id, e.last_name,f.last_name;
Построить схему мультиплексора на восемь входов на основе микросхемы сдвоенных мультиплексоров на четыре входа (74153) и привести соответствующие пояснения к выполненным соединениям в схеме.
ОписаниеМикросхема 74153 содержит два 4-канальных селектора данных с общими адресными входами, но раздельными входами стробирующих импульсов.
Работа схемы
Выбор необходимого входа на обоих селекторах данных микросхемы 74153 осуществляется через общие адресные входы АО и А1 подачей соответствующего кода. Выделенный сигнал появляется на выходах 1Q и 2Q в неинвертированном виде.
Разрешающие входы микросхемы 74153 (выводы 1 и 15) работают независимо друг от друга. В нормальном режиме работы на разрешающие входы подается напряжение низкого уровня. Если на один из этих входов подается напряжение высокого уровня, то на соответствующем выходе 1Q или 2Q микросхемы 74153 устанавливается напряжение низкого уровня независимо от состояния других входов.
Диаграмма последовательностей: определение, структура, состав, пример.
Диаграмма последовательности (англ. sequence diagram) — диаграмма, на которой показано взаимодействие объектов (обмен между ними сигналами и сообщениями), упорядоченное по времени, с отражением продолжительности обработки и последовательности их проявления. Используется в языке UML.
Основными элементами диаграммы последовательности являются обозначения объектов(прямоугольники с названиями объектов), вертикальные "линии жизни"(англ. lifeline), отображающие течение времени, прямоугольники, отражающие деятельность объекта или исполнение им определенной функции (прямоугольники на пунктирной "линии жизни"), и стрелки, показывающие обмен сигналами или сообщениями между объектами.
На данной диаграмме объекты располагаются слева направо.
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №77
по специальности 5B0704 - Вычислительная техника и программное обеспечение
Напишите функцию удаления из строки n-символов, начиная с q-го.
#include<conio.h>
#include<stdio.h>
#include<string.h>
char*s="You are the best!";
int n = 5,q = 2;
void main()
{
clrscr();
int i;
int ls=strlen(s);
printf("%s\n",s);
printf("delete %d symbols from %d position\n",n,q);
if (ls-q+1<n)
n=ls-q+1;
if (n<=ls)
{
i=q;
for (;i<ls-n+1;i++,q++)
s[q]=s[q+n];
};
s[q-1]='\0';
printf("The result: %s",s);
getch();
}
Напишите программу реализации системной функции CopyMemory
VOID CopyMemory (
PVOID Destination, // адрес области назначения
CONST VOID *Source, // адрес исходной области
SIZE_T Length // длина блока памяти
Эта функция копирует блок памяти, длина в байтах и базовый адрес которого задаются соответственно параметрами Length и source в область памяти по адресу Destination. Отметим, что результат выполнения функции соруметогу непредсказуем, если исходный и результирующий блоки памяти перекрываются.
Листинг. Инициализаций и копирование блоков виртуальной памяти
#include <windows.h>
#include <iostream.h>
int mainO
{BYTE *a, *b; // указатели на блоки памяти
const int size = 1000; // размерность массива // распределяем виртуальную память
а = (BYTE*)VirtualAlloc (NULL, size, MEM_COMMIT, PAGE_READWRITE) ;
if(!a)
{cout « "Virtual allocation failed." << endl;
return GetLastError(); }
b= (BYTE*)VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE);
if(!b)
{ cout « "Virtual allocation failed." « endl;
return GetLastError(); } // инициализируем символом X
FillMemory(a, size, 'X'); // копируем блок А в блок В
CopyMemory(b, a, size); // распечатываем результат
cout « **b[10] = " « b[10] « endl;
// освобождаем виртуальную память
if (!VirtualFree(a, 0, MEM_RELEASE))
{ cout « "Memory release failed." « endl;
return GetLastError(); }
return 0; }
Выведите фамилию, номер отдела и оклад всех служащих, чей оклад и комиссионные совпадают с окладом и комиссионными любого служащего, работающего в LOCATION_ID = 1700.
SELECT e.last_name, d.department_name, e.salary
FROM employees e, departments d
WHERE e.department_id=d.department_id
AND (salary, NVL(commission_pct,0)) IN
(SELECT salary, NVL(commission_pct,0)
FROM employees e, departments d
WHERE e.department_id=d.department_id
AND d.location_id=1700;
Или:
SELECT e.last_name, d.department_id, e.salary
FROM employees e, departments d
WHERE e.department_id=d.department_id
AND (salary, NVL(commission_pct,0)) IN
(SELECT salary, NVL(commission_pct,0)
FROM employees e, departments d
WHERE e.department_id=d.department_id
AND d.location_id=1700;
Описать режимы работы представленной микросхемы, назначение и характер ее входных и выходных сигналов.
Описание
Микросхема 74138 содержит быстродействующий дешифратор/демультиплексор с тремя входами и восемью выходами и с тремя разрешающими входами.
Работа схемы
Когда 3-разрядный код поступает на три входа (АО, А1 и А2) микросхемы 74138, на соответствующем этому коду выходе Q устанавливается напряжение низкого уровня, а на остальных выходах — высокого. Однако это происходит лишь в том случае, если на разрешающие входы E1 и E2 микросхемы 74138 подается напряжение низкого уровня, а на вход Е3 — высокого.
Такая комбинированная возможность отпирания схемы позволяет легко расширить ее до дешифратора 1 из 32, параллельно подключив к схеме четыре микросхемы 74138 и один инвертор.
Микросхема 74138 может использоваться и в качестве демультиплексора на 8 выходов, если один из разрешающих выходов E1 или E2 служит в качестве информационного входа, а другие разрешающие входы — в качестве входов стробирующих импульсов. При этом на незадействованные разрешающие входы микросхемы 74138 должно постоянно подаваться напряжение соответствующего уровня (высокого или низкого), который необходим для работы микросхемы.
Инсталляция и установка программных систем – проблемы, пути решения, инструменты.
Установка программного обеспечения, инсталляция — процесс установки программного обеспечения на компьютер конечного пользователя. Выполняется особой программой (пакетным менеджером), присутствующей в операционной системе (например, RPM, APT или dpkg в Linux, Установщик Windows в Microsoft Windows), или же входящим в состав самого программного обеспечения средством установки. В операционной системе GNU очень распространено использование системы GNU toolchain и её аналогов для компиляции программного обеспечения непосредственно перед установкой.
* Системные сообщения ``Read error''(ошибка чтения), ``file not
found''(не найден файл) или другие ошибки во время попытки
инсталлировать программы. Это говорит о проблемах с вашими
средствами инсталляции. Если у вас есть на диске разделы
MS-DOS, многие дистрибутивы Linux позволят вам инсталлировать с
жесткого диска. Это может быть быстрее и более надежно, чем
использование дискет.
Если вы используете CD-ROM, убедитесь в отсутствии на нем царапин,
пыли или других гадостей, которые могут приводить к ошибкам.
Причиной может быть и то, что соответствующее средство инсталляции
имеет неподходящий формат.
* Системные сообщения вроде ``tar: read error'' (tar: ошибка чтения)
или ``gzip: not in gzip format''(gzip: не в формате gzip). Часто
это связано с испорченными файлами на средствах инсталляции.
Другими словами, ваши дискеты могут быть нормальными, но вот
данные на них каким-то образом испорчены.
* Системные сообщения об ошибках, такие как ``device full''
(устройство заполнено) в процессе инсталляции. Это верный признак
того, что вы вышли за пределы отведенного пространства при
инсталляции. Не все дистрибутивы способны с этим разобраться; вы
не сможете прервать инсталляцию и вынуждены дождаться, когда
система сама остановится.
Обычное решение в этой ситуации - пересоздание файловой системы (с помощью команды mke2fs), которая удаляет частично инсталлированные программы.
* Системные сообщения об ошибках, такие как ``read_intr: 0x10'' при
обращении к жесткому диску. Это обычно говорит о наличии плохих
блоков на диске. Однако, если вы получили это сообщение во время
выполнения mkswap или mke2fs, причиной этого могло быть то, что
система имела проблемы с доступом к вашему диску.
* Системные сообщения об ошибках , вроде ``file not found'' или
``permission denied''. Это может случиться, если не все
необходимые файлы представлены на средствах инсталляции
Если у вас появляются другие странные ошибки во время инсталляции Linux (особенно если вы сами переписали где-то эти программы), убедитесь, что вы действительно списали все необходимое. Например, некоторые используют команду FTP : mget *.* для скачивания программ Linux через FTP.
Самый лучший совет - заново пересмотреть все шаги, которые вы совершили, если у вас застопорилось дело.
Распространенные программы установки
Семейство Windows
Наиболее популярным форматом для семейства Windows NT является установочный пакет MSI, который устанавливается посредством Установщика Windows. Компании, производящие средства для создания инсталляторов: InstallShield (InstallShield Wizard), Macrovision (InstallAnywhere), Wise Solutions, Inc., SetupBuilder, InstallBuilders (Smart Install Maker). Большинство из этих средств могут создавать как пакеты MSI, так и свои собственные пакеты.
Бесплатными альтернативами являются NSIS, Actual Installer Free, Clickteam Install Creator, Inno Setup, Install Simple, а также инструментальные средства от Microsoft (WiX).
Семейство UNIX
Большинство дистрибутивов операционных систем на базе GNU, Linux и BSD имеет встроенные системы управления пакетами, с помощью которых можно устанавливать как необходимые компоненты операционной системы, так и стороннее программное обеспечение, зачастую даже если оно использует собственный установщик, которым это не предусмотрено.
Семейство Maс OS
Mac OS X также использует систему управления пакетами. Некоторые коммерческие приложения для Mac OS X используют отдельный установщик, например, Installer VISE или Stuffit InstallerMaker. Приложения, которые не нуждаются в установке дополнительных компонентов системы, могут быть установлены посредством простого копирования файлов приложения в нужное место на жестком диске. Mac OS X также включает отдельное приложение для обновления программ Software Update (также известное как команда оболочки softwareupdate), но оно поддерживает только программное обеспечение продуктов Apple.
Программы установки и архиваторы
Некоторые архиваторы (например WinRAR, WinZip, 7-Zip и другие) также позволяют создавать установщики (самораспаковывающийся архив).
Некоторые операционные среды — например, Windows NT (по умолчанию) и Xfce 4 (по желанию пользователя), содержат функцию автоматического запуска определённой программы, находящейся на носителе, при его вставке в устройство чтения.
Как компромисс между Установщиком Windows и системами управления содержимым UNIX-подобных систем, существуют системы управления установкой Windows
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №78
по специальности 5B0704 - Вычислительная техника и программное обеспечение
Напишите функцию поиска самой длинной цепочки из подряд идущих одинаковых элементов в массиве.
# include <stdio.h>
# include <stdlib.h>
const n=10;
int s[n];
int x[n],maxk=1,j;
void poisk(int a[])
{
for (int i=0;i<n;i++)
{
int k=1;
if (a[i]==a[i+1])
{ j=i;
while (a[j]==a[j+1]) { j++; k++;}
}
if (k>maxk)
{ maxk=k;
for (k=0;i<=j;i++,k++)
x[k]=a[i];
}
}
}
и мой собственный вариант=Ю
#include<stdio.h>
#include<conio.h>
int arr[]={'1','2','4','4','4','4','w','w','32','s','2','3','2','1','2'};
int i,j,k,m,record,recordabs,end;
int n=sizeof(arr)/sizeof(int);
int main()
{
clrscr();
m=0;
recordabs = 0;
for (i=0, j=i+1; j < n; )
{
if (arr[i] == arr[j])
{
record = j-i+1;
if (recordabs < record) {recordabs = record; k = i;}
j++;
}
else {i++;j=i+1;}
}
end = recordabs + k;
printf ("Position = %d; Lenth = %d;\n The string: ",k,recordabs);
for (i=k;i<end;i++)
printf(" %c ",arr[i]);
getch();
}
Напишите программу реализации системной функции GetThreadPriority
#include <windows.h>
#include <iostream>
using namespace std;
DWORD WINAPI thread_proc( LPVOID lpParameter )
{ return 0;}
int main()
{ HANDLE hThread;
DWORD priority_class, thread_priority;
hThread = CreateThread( NULL, 0, thread_proc, NULL, CREATE_SUSPENDED, NULL );
SetThreadPriority( hThread, THREAD_PRIORITY_HIGHEST );
thread_priority = GetThreadPriority( hThread );
priority_class = GetPriorityClass( GetCurrentProcess() );
switch ( priority_class ) {
case NORMAL_PRIORITY_CLASS:
thread_priority += 8;
break;
default:
cout << "???\n"; }
cout << "thread_piority: " << thread_priority << endl;
return 0;}
Создайте запрос для вывода фамилии, даты найма и оклада всех служащих, которые получают такой же оклад и такие же комиссионные, как Kochhar.
SELECT last_name, hire_date, salary
FROM employees
WHERE (salary, NVL(commission_pct,0)) IN
(SELECT salary, NVL(commission_pct,0)
FROM employees
WHERE last_name=’Kochhar’)
AND last_name!= ’Kochhar’
Описать состав и режимы работы представленной микросхемы, назначение и характер ее входных и выходных сигналов.
Описание
Микросхема 74153 содержит два 4-канальных селектора данных с общими адресными входами, но раздельными входами стробирующих импульсов.
Работа схемы
Выбор необходимого входа на обоих селекторах данных микросхемы 74153 осуществляется через общие адресные входы АО и А1 подачей соответствующего кода. Выделенный сигнал появляется на выходах 1Q и 2Q в неинвертированном виде.
Разрешающие входы микросхемы 74153 (выводы 1 и 15) работают независимо друг от друга. В нормальном режиме работы на разрешающие входы подается напряжение низкого уровня. Если на один из этих входов подается напряжение высокого уровня, то на соответствующем выходе 1Q или 2Q микросхемы 74153 устанавливается напряжение низкого уровня независимо от состояния других входов.
Оптимизация программных продуктов – методы и инструменты.
Оптимизация — модификация системы для улучшения её эффективности. Система может быть одиночной компьютерной программой, цифровым устройством, набором компьютеров или даже целой сетью, такой как Интернет.
Хотя целью оптимизации является получение оптимальной системы, истинно оптимальная система в процессе оптимизации достигается далеко не всегда. Оптимизированная система обычно является оптимальной только для одной задачи или группы пользователей: где-то может быть важнее уменьшение времени, требуемого программе для выполнения работы, даже ценой потребления большего объёма памяти; в приложениях, где важнее память, могут выбираться более медленные алгоритмы с меньшими запросами к памяти.
Более того, зачастую не существует универсального решения (хорошо работающего во всех случаях), поэтому инженеры используют компромиссные (англ. tradeoff) решения для оптимизации только ключевых параметров. К тому же, усилия, требуемые для достижения полностью оптимальной программы, которую невозможно дальше улучшить, практически всегда превышают выгоду, которая может быть от этого получена, поэтому, как правило, процесс оптимизации завершается до того, как достигается полная оптимальность. К счастью, в большинстве случаев даже при этом достигаются заметные улучшения.
Оптимизация должна проводиться с осторожностью. Тони Хоар впервые произнёс, а Дональд Кнут впоследствии часто повторял известное высказывание: «Преждевременная оптимизация — это корень всех бед». Очень важно иметь для начала озвученный алгоритм и работающий прототип.
Оптимизация по затратам процессорного времени особенно важна для расчетных программ, в которых большой удельный вес имеют математические вычисления. Здесь перечислены некоторые приемы оптимизации, которые может использовать программист при написании исходного текста программы.
