Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shp.doc
Скачиваний:
12
Добавлен:
18.09.2019
Размер:
5.46 Mб
Скачать

ООП

Задачи

1. Вычислите значение функции в зависимости от заданного условия.

#include<stdio.h>

#include <conio>

#include <math.h>

void main ()

{

float a,b,y;

printf("a="); scanf("%f",&a);

printf("b="); scanf("%f",&b);

if (a>b) y=pow(sin(a/b),2)+pow(fabs(a),3); else if (a==b) y=-sqrt(fabs(a))+tan(b); else y=sqrt(pow(a,4)+pow(b,4));

printf("%5.3f",y);

getch();

}

2. Составить программу, которая запрашивает порядковый номер месяца и выводит на экранвремя года.

#include <stdio.h>

#include <conio.h>

voidmain()

{

printf("Введитеномермесяца -");

int mes; scanf("%d",&mes);

switch(mes)

{

case 1,2,12:printf("зима"); break;

case 3,4,5:printf("весна"); break;

case 6,7,8:printf("лето"); break;

case 9,10,11:printf("осень"); break;

default:printf("некорректный ввод!!!");

}

getch();

}

3. Вычислить произведение ряда

#include<stdio.h>

#include <conio>

#include <math.h>

void main ()

{

float x,y=1; int n;

printf("x="); scanf("%f",&x);

for (n=2;n<=5;n++)// переменная I изменяется от 2 до 5 с шагом 1

y*=exp(-x)*log(x)*tan(x);

printf("%5.10f",y);

getch();

}

4. Вычислить таблицу значений функций для значений аргумента x, который изменяется от xn до xk с шагом dx

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

float xn,xk,dx,x,y;

printf("xn="); scanf("%f",&xn);

printf("xk="); scanf("%f",&xk);

printf("dx="); scanf("%f",&dx);

x=xn; //присваиваем переменной x начальное значение

while (x<=xk)

{

y=pow(tan(x/2),2)*exp(-2*x)*log(fabs(x));

printf("x=%1.1f y=%f\n",x,y);

x+=dx; //значение x возрастает на величину шага

}

getch();

}

5. Обеспечить ввод с клавиатуры последовательности из целых чисел (диапазон от -20 до 10, конец серии – ввод нуля). После окончания ввода программа должна вывести количество положительных и четных чисел.

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

int x,k;

do

{ printf("x="); scanf("%d",&x);

if (x<=10 && x>0 && x%2==0) k++;

}

while (x!=0);

printf("k=%d",k);

getch();

}

6. Сформировать одномерный массив, состоящий из N целочисленных элементов. После чего найти произведение всех элементов массива, удовлетворяющих условию c<a[I]<d

#include <stdio.h>

#include <conio.h>

void main()

{ const n=7;

int i,c,d,k=0,pr=1;

printf("c="); scanf("%d",&c);

printf("d="); scanf("%d",&d);

int a[n];

for(i=1;i<=n;i++)

{ printf("a[%d]=",i); scanf("%d",&a[i]);

if (a[i]>c && a[i]<d) {k++; pr*=a[i];}

}

if (k==0) printf("чисел, удовлетворяющих условию не было!");

else printf("pr=%d",pr);

getch();

}

7. Сформировать одномерный массив, состоящий из N целочисленных элементов. После чего: найти количество четных и количество нечетных элементов в массиве.

#include <stdio.h>

#include <conio.h>

void main()

{ const n=7;

int i,ch=0,nch=0;

int a[n];

for(i=1;i<=n;i++)

{ printf("a[%d]=",i); scanf("%d",&a[i]);

if (a[i]%2==0) ch++; else nch++;

}

printf("ch=%d nch=%d",ch,nch);

getch();

}

8. Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в диапазоне от 10 до 100). После чего: найти сумму элементов, лежащих выше главной диагонали.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void main()

{ const n=7;

int i,j,sum=0;

int a[n][n];

randomize();

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

a[i][j]=10+random(91);

printf("%5d",a[i][j]);

}

printf("\n"); //переход на другую строку

}

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if (j>i) sum+=a[i][j];

printf("sum=%d",sum);

getch();

}

9. Сформировать двухмерный массив, состоящий из N x N элементов (заполнить случайными числами в диапазоне от 10 до 100). После чего: найти номер столбца, в котором расположен минимальный элемент матрицы.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void main()

{ const n=7;

int i,j,k=0,min;

int a[n][n];

randomize();

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

a[i][j]=10+random(91);

printf("%5d",a[i][j]);

}

printf("\n"); //переход на другую строку

}

min=a[1][1];

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if (min>a[i][j])

{min=a[i][j]; k=j;}

printf("min=%d k=%d\n",min,k);

getch();

}

Дисциплина «Системное программирование» Теоретические вопросы

  1. Операционные системы: история

Первый период (1945 -1955)

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

Второй период (1955 - 1965).

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

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

Третий период (1965 - 1980)

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

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

Программная совместимость требовала и совместимости операционных систем. Такие операционные системы должны были бы работать и на больших, и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии - в коммерческой области и в области научных исследований. Несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы машин третьего поколения действительно удовлетворяли большинству требований потребителей. Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько программ.

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

Четвертый период (1980 - настоящее время)

Данный период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). Произошло резкое возрастание степени интеграции и удешевление микросхем. Компьютер стал доступен отдельному человеку, и наступила эра персональных компьютеров.

На рынке операционных систем доминировали две системы: MS-DOS и UNIX. Однопрограммная однопользовательская ОС MS-DOS широко использовалась для компьютеров, построенных на базе микропроцессоров Intel 8088, а затем 80286, 80386 и 80486. Мультипрограммная многопользовательская ОС UNIX доминировала в среде "не-интеловских" компьютеров, особенно построенных на базе высокопроизводительных RISC-процессоров.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных ОС.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]