Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры госы.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
10.34 Mб
Скачать

По целям исследований

В зависимости от целей исследования выделяют следующие модели:

  • функциональные. Предназначены для изучения особенностей работы (функционирования) системы, её назначения во взаимосвязи с внутренними и внешними элементами;

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

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

По особенностям представления

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

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

  • Разделение систем на однородные и неоднородные проводится в соответствии с заранее выбранным признаком: используемые физические явления, материалы, формы и т. д. При этом одна и та же модель при разных подходах может быть и однородной, и неоднородной. Так, велосипед — однородное механическое устройство, поскольку использует механические способы передачи движения, но неоднородное по типам материалов, из которых изготовлены отдельные части (резиновая шина, стальная рама, пластиковое седло).

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

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

  • Характеристики вероятностных (иными словами, стохастических) моделей случайным образом распределяются в пространстве или меняются во времени. Это является следствием как случайного распределения свойств материалов, геометрических размеров и форм объекта, так и случайного характера воздействия внешних нагрузок и условий. Характеристики детерминированных моделей заранее известны и точно предсказуемы.

Знание этих особенностей облегчает процесс моделирования, так как позволяет выбрать вид модели, наилучшим образом соответствующей заданным условиям. Этот выбор основывается на выделении в системе существенных и отбрасывании второстепенных факторов и должен подтверждаться исследованиями или предшествующим опытом. Наиболее часто в процессе моделирования ориентируются на создание простой модели, что позволяет сэкономить время и средства на её разработку. Однако повышение точности модели, как правило, связано с ростом её сложности, так как необходимо учитывать большое число факторов и связей. Разумное сочетание простоты и потребной точности и указывает на предпочтительный вид модели.

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №74

по специальности 5B0704 - Вычислительная техника и программное обеспечение

  1. Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов. (билет 4)

import com.sun.org.apache.xpath.internal.SourceTree;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.lang.reflect.Array;

import java.util.*;

import static java.util.Collections.*;

public class Arr {

public static List<Integer> sort(List<Integer> p_array, String p_sort_type) {

List<Integer> l_return = p_array;

if (p_sort_type.toUpperCase().equals("ASC")) {

Collections.sort(l_return);

} else if (p_sort_type.toUpperCase().equals("DESC")) {

Collections.sort(l_return, reverseOrder());

}

return l_return;

}

public static List<Integer> sort(List<Integer> p_array) {

return sort(p_array, "ASC");

}

public static List<Integer> merge(List<Integer> p_array, List<Integer> p_array_to_merge, String p_condition) {

List<Integer> l_return = p_array;

Integer l_array_element;

if (p_condition.toLowerCase().equals("without equals")) {

for (int i = 0; i < p_array_to_merge.size(); i++) {

l_array_element = p_array_to_merge.get(i);

while (!l_return.contains(l_array_element)) {

l_return.add(l_array_element);

}

}

}

return l_return;

}

public static List<Integer> merge(List<Integer> p_array, List<Integer> p_array_to_merge) {

List<Integer> l_return = p_array;

Integer l_array_element;

for (int i = 0; i < p_array_to_merge.size(); i++) {

l_array_element = p_array_to_merge.get(i);

l_return.add(l_array_element);

}

return l_return;

}

public static void main(String args[]) {

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

Integer l_first_array_length = 0;

Integer l_first_array_rand_range = 0;

Integer l_second_array_length = 0;

Integer l_second_array_rand_range = 0;

try {

System.out.println("We will populate array with random numbers");

System.out.print("Enter first array size : ");

l_first_array_length = Integer.valueOf(reader.readLine());

System.out.print("Enter biggers number to fill first array: ");

l_first_array_rand_range = Integer.valueOf(reader.readLine());

System.out.print("Enter second array size : ");

l_second_array_length = Integer.valueOf(reader.readLine());

System.out.print("Enter biggers number to fill first array: ");

l_second_array_rand_range = Integer.valueOf(reader.readLine());

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("Ok, got it.");

List<Integer> first = new ArrayList<Integer>();

List<Integer> second = new ArrayList<Integer>();

List<Integer> third = new ArrayList<Integer>();

Integer l_rand_number;

for (int i = 0; i < l_first_array_length; i++) {

first.add(new Random().nextInt(l_first_array_rand_range));

}

for (int i = 0; i < l_second_array_length; i++) {

second.add(new Random().nextInt(l_second_array_rand_range));

}

System.out.println("Sorting first array...");

first = sort(first, "DESC");

System.out.println("Sorting second array...");

second = sort(second, "DESC");

System.out.println("Merging arrays. Skipping equal numbers...");

third = merge(third, first, "without equals");

third = merge(third, second, "without equals");

third = sort(third, "DESC");

System.out.println("First array: " + Arrays.toString(first.toArray()));

System.out.println("Second array: " + Arrays.toString(second.toArray()));

System.out.println("Merged array: " + Arrays.toString(third.toArray()));

}

}

  1. Напишите программу реализации системной функции OpenService

BOOL DeleteSampleService()

{ schService = OpenService(

schSCManager, // база данных SCManager

TEXT("Sample_Srv"), // имя службы

DELETE); // однако требует доступа DELETE

if (schService == NULL)

{ printf("OpenService failed (%d)\n", GetLastError());

return FALSE; }

if (!DeleteService(schService) )

{ printf("DeleteService failed (%d)\n", GetLastError());

return FALSE; }

else printf("DeleteService succeeded\n");

CloseServiceHandle(schService);

return TRUE;}

  1. Создайте запрос для вывода фамилии, номера отдела и должности каждого служащего, отдел которого находится в location_ID = 1700. select e.last_name,e.department_id,e.job_id,d.location_id

from employees e,departments d where e.department_id=d.department_id and d.location_id=1700;

  1. Построить схему двоичного счетчика с модулем счета 10010 на основе микросхем счетчика (7493) и привести соответствующие пояснения к выполненным соединениям в схеме.

  1. Этап выработки требований к программе - методы и инструменты.

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

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

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

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

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

АТТЕСТАЦИОННЫЙ ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ №75

по специальности 5B0704 - Вычислительная техника и программное обеспечение

  1. Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по неубыванию массив С.

# include <stdio.h>

# include <stdlib.h>

  const N=10,M=10;

  int a[N],b[M],c[N+M];

void main()

{

  randomize();

  a[0]=-5;

  b[0]=-5;

  for (int i=1;i<N;i++)

    {

      a[i]=a[i-1]-random(3);

      b[i]=b[i-1]-random(3);

    }

  int x=M-1,y=N-1;

  i=0;

  while ((x>=0)|(y>=0))

    {

      if (((a[x]<=b[y])|(y<0))&(x>=0))

        {

          c[i]=a[x];

          i++;

          x--;

        }

      else if (((a[x]>=b[y])|(x<0))&(y>=0))

        {

          c[i]=b[y];

          i++;

          y--;

        }

    }

  1. Напишите программу реализации системной функции OpenWaitableTimer

Напишем программу-будильник используя WaitableTimer'ы. Будильник будет срабатыват раз в день в 8 утра и "пикать" 10 раз. Используем для этого два таймера, один из которых с callback-функцией.

#include <process.h>

#include <windows.h>

#include <stdio.h>

#include <conio.h>

#define HOUR (8) // время, когда срабатывает будильник (только часы)

#define RINGS (10) // сколько раз пикать

HANDLE hTerminateEvent ;

// callback функция таймера

VOID CALLBACK TimerAPCProc(LPVOID, DWORD, DWORD)

{

Beep(1000,500); // звоним!

};

// функция потока

unsigned __stdcall ThreadFunc(void *)

{

HANDLE hDayTimer = CreateWaitableTimer(NULL,FALSE,NULL);

HANDLE hAlarmTimer = CreateWaitableTimer(NULL,FALSE,NULL);

HANDLE h[2]; // мы будем ждать эти объекты

h[0] = hTerminateEvent; h[1] = hDayTimer;

int iRingCount=0; // число "звонков"

int iFlag;

DWORD dw;

// немного помучаемся со временем,

//т.к. таймер принимает его только в формате FILETIME

LARGE_INTEGER liDueTime, liAllDay;

liDueTime.QuadPart=0;

// сутки в 100-наносекундных интервалах = 10000000 * 60 * 60 * 24 = 0xC92A69C000

liAllDay.QuadPart = 0xC9;

liAllDay.QuadPart=liAllDay.QuadPart << 32;

liAllDay.QuadPart |= 0x2A69C000;

SYSTEMTIME st;

GetLocalTime(&st); // узнаем текущую дату/время

iFlag = st.wHour > HOUR; // если назначенный час еще не наступил,

//то ставим будильник на сегодня, иначе - на завтра

st.wHour = HOUR;

st.wMinute = 0;

st.wSecond =0;

FILETIME ft;

SystemTimeToFileTime( &st, &ft);

if (iFlag)

((LARGE_INTEGER *)&ft)->QuadPart =

((LARGE_INTEGER *)&ft)->QuadPart +liAllDay.QuadPart ;

LocalFileTimeToFileTime(&ft,&ft);

// Устанавливаем таймер,

// он будет срабатывать раз в сутки (24*60*60*1000ms),

// начиная со следующего "часа пик" - HOUR

SetWaitableTimer(hDayTimer, (LARGE_INTEGER *) &ft, 24*60*60000, 0, 0, 0);

do {

dw = WaitForMultipleObjectsEx(2,h,FALSE,INFINITE,TRUE);

if (dw == WAIT_OBJECT_0 +1) // сработал hDayTimer

{

// Устанавливаем таймер, он будет вызывать callback ф-ию раз в секунду,

// начнет с текущего момента

SetWaitableTimer(hAlarmTimer, &liDueTime, 1000, TimerAPCProc, NULL, 0);

iRingCount=0;

}

if (dw == WAIT_IO_COMPLETION) // закончила работать callback ф-ия

{

iRingCount++;

if (iRingCount==RINGS)

CancelWaitableTimer(hAlarmTimer);

}

}while (dw!= WAIT_OBJECT_0); // пока не сработало hTerminateEvent крутимся в цикле

// закрывае handles, выходим

CancelWaitableTimer(hDayTimer);

CancelWaitableTimer(hAlarmTimer);

CloseHandle(hDayTimer);

CloseHandle(hAlarmTimer);

_endthreadex( 0 );

return 0;

};

int main(int argc, char* argv[])

{

// это событие показывае потоку когда надо завершаться

hTerminateEvent = CreateEvent(NULL,FALSE,FALSE,NULL);

unsigned uThreadID;

HANDLE hThread;

// создаем поток

hThread = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, 0, 0,&uThreadID);

puts("Press any key to exit.");

// ждем any key от пользователя для завершения программы

getch();

// выставляем событие

SetEvent(hTerminateEvent);

// ждем завершения потока

WaitForSingleObject(hThread, INFINITE );

// закрываем handle

CloseHandle( hThread );

return 0;

}

  1. Получите номер отдела, фамилию и должность для каждого служащего, работающего в административном департаменте (Executive).

select department_id, last_name, job_id

from employees

where department_id in (SELECT department_id

FROM departments where department_name='Executive')

  1. Построить схему дешифратора на восемь выходов на основе микросхемы сдвоенных дешифраторов на четыре выхода (74139) и привести соответствующие пояснения к выполненным соединениям в схеме.

  1. Парадигмы связывания и видимости объектов – глобальные и локальные, статические и динамические, внутренние и внешние - методы и инструменты реализации.

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