В тетради создать структуру БД "Книги", содержащую сведения, приведенные лице, Данные организовать в виде 3 таблиц. В каждой таблице предусмотреть поле "Код" (тип данных счетчик"), по которому
осушествить связь между таблицами. Каждая таблица должна содержать не менее 4 полей с различными типами данных.
Данные по таблица распределить таким образом, чтобы при создании запросов данные брались из разных таблиц.
Недостающие данные необходимо придумать самим. Начертить таблицы в режиме аналогичном режиму "Конструктора" и
рому "Редактирования". Показать схему данных созданной базы данных.
Язык
Цена
Код книги
Автор
Название книги
Кол-во
страниц
Жанр
А. Дома
589
Роман
125
009
Королева Марго
Русский
336
Детектив
25
Глупая история
E. Данченко
Французский 375
3.л. Войти
Классика
544
073
Русский
Озод
316
240
М. Синицкий
Детектив
225
514
Шуники
Русский
Ф.Саган
Роман
655
074
Французский 615
Прощай, печаль
A Дома
Роман
424
103
Сорок пять
Французский 475
Английский 265
105
Черное солнце
ДЛокард
Фантастика 494
Английский
101
419
Разбойный эскадрон
М. Стеклол
Фантастика 576
Осень
Роман
195
В. Левиц
270
Французский 18,60
400
Амило
Научная
литература
129
380
Русский
Программирование
Запишите условия для следующих запросов:
а) произведения Эл. Войнич;
6) романы, написанные на француском языке;
3)книги с количество страниц более 400 и стоимостью менее 400.
Покажите, как выглядит условия запросов и как будут выглядеть результаты выполнения запросов.
//Pascal
const m = 1000
var
arr: array[1..m] of integer;
n,i, j, k: integer;
begin
readln(n);
write ('Исходный массив: ');
for i := 1 to n do begin
readln(arr[i]);
end;
//сортировка методом пузырька
for i := 1 to n-1 do
for j := 1 to n-i do
if arr[j] > arr[j+1] then begin
k := arr[j];
arr[j] := arr[j+1];
arr[j+1] := k
end;
write ('Отсортированный массив: ');
for i := 1 to n do
write (arr[i]:4);
end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
{
int i, j;
for(i = n-1 ; i > 0 ; i--)
{ for(j = 0 ; j < i ; j++)
{
if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
}
}
}
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969