1) на Pascal: var t,i,j:integer; a:array[1..4]of integer; begin for i:=1 to 4 do begin write('Vvedite ',i,'-i 4islo: '); readln(a); end; for i:=2 to 4 do for j:=4 downto i do if a[j-1]>a[j] then begin t:=a[j-1]; a[j-1]:=a[j]; a[j]:=t; end; writeln('Raspolagaem 4isla v poryadke vozrastaniya:'); for i:=1 to 4 do writeln(a); readln; end.
2) на С: #include <stdio.h> #include <conio.h> void main(void){ int n,a,b,c,d; printf("\nVvedite 4x-znachnoe chislo n: "); scanf("%i", &n); a=n/1000; b=(n-a*1000)/100; c=(n-a*1000-b*100)/10; d=n-a*1000-b*100-c*10; if (a+b==c+d) printf("true"); else printf("false"); getch(); };
Таблицы позволяют объединить однотипные данные в более-менее читабельную структуру, чего не делает словесное описание (как, например, приятней читать таблицу с датами и описанием исторических событий в таблице, чем читать словесную демагогию в учебиках). Таблицы позволяют ужать данные в размере, читателю сосредоточиться на главном. Они позволяют операторам обрабатывать её без каких-либо затруднений.
Еще пример: магазинные чеки. Не будет же машина (из-за технической сложности) или человек (из-за лени) писать на чеке: "продано столько-то столько-то того-то того-то ... пакет апельсинов весил шестьсот пядесят три грамма ... итд". На чеке будет табличка, где четко и точно будет написано то, что человек приобрел. Вот. Так что табличные модели, несомненно, лучше словесных.
Рассмотрим пример решения задачи: Однажды Винни-Пух захотел полакомиться медом и пошел к пчелам в гости. По дороге нарвал букет цветов, чтобы подарить труженицам пчелкам. Пчелки очень обрадовались, увидев мишку с букетом цветов, и сказали: «У нас есть большая бочка с медом. Мы дадим тебе меда, если ты сможешь с двух сосудов вместимостью 3 л и 5 л налить себе 4 л!» Винни-Пух долго думал, но все-таки смог решить задачку. Как он это сделал?
Решение: Как в результате можно получить 4 л? Нужно из 5-литрового сосуда отлить 1 л. А как это сделать? Нужно в 3-литровом сосуде иметь ровно 2 л. Как их получить? – Из 5-литрового сосуда отлить 3 л. Решение лучше и удобнее оформить в виде таблицы: Ходы1234565 л522-543 л-3-223
Наполняем из бочки 5-литровый сосуд медом (1 шаг). Из 5-литрового сосуда отливаем 3 л в 3-литровый сосуд (2 шаг). Теперь в 5-литровом сосуде осталось 2 литра меда. Выливаем из 3-литрового сосуда мед назад в бочку (3 шаг). Теперь из 5-литрового сосуда выливаем те 2 литра меда в 3-литровый сосуд (4 шаг). Наполняем из бочки 5-литровый сосуд медом (5 шаг). И из 5-литрового сосуда дополняем медом 3-литровый сосуд. Получаем 4 литра меда в 5-литровом сосуде (6 шаг). Задача решена. Поиск решения можно было начать с такого действия: к трем литрам добавить 1 литр. Но тогда решение будет выглядеть следующим образом: Ходы123456785 л-335-1143 л3-311-3-( по этому примеру реши)
1) на Pascal:
var
t,i,j:integer;
a:array[1..4]of integer;
begin
for i:=1 to 4 do
begin
write('Vvedite ',i,'-i 4islo: ');
readln(a);
end;
for i:=2 to 4 do
for j:=4 downto i do
if a[j-1]>a[j] then
begin
t:=a[j-1];
a[j-1]:=a[j];
a[j]:=t;
end;
writeln('Raspolagaem 4isla v poryadke vozrastaniya:');
for i:=1 to 4 do
writeln(a);
readln;
end.
2) на С:
#include <stdio.h>
#include <conio.h>
void main(void){
int n,a,b,c,d;
printf("\nVvedite 4x-znachnoe chislo n: ");
scanf("%i", &n);
a=n/1000;
b=(n-a*1000)/100;
c=(n-a*1000-b*100)/10;
d=n-a*1000-b*100-c*10;
if (a+b==c+d) printf("true");
else printf("false");
getch();
};