Программирование циклических алгоритмов
147
196. Дана программа на языке Паскаль:
program a4;
х, ki, k2: integer;
begin
ki:=0;
k2:=0;
repeat
writeln ( Введите целое число);
readln (x);
if x<0 then kl:=k1+1;
if x>0 then k2:=k2+1;
until x=0;
writeln (kl=',
К2=", к2)
end.
Составьте блок-схему, соответствующую программе.
чем являются результаты работы?
Из комбинаторики известно, что, в случае непозиционного кода, количество комбинаций (кодов) n-разрядного кода является числом сочетаний с повторениями, равно биномиальному коэффициенту:
{\displaystyle {n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}}{n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}, [возможных состояний (кодов)], где:
{\displaystyle n}n — количество элементов в данном множестве различных элементов (количество возможных состояний, цифр, кодов в разряде),
{\displaystyle k}k — количество элементов в наборе (количество разрядов).
В двоичной системе кодирования (n=2) количество возможных состояний (кодов) равно :
{\displaystyle {\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}={\frac {\left(2+k-1\right)!}{k!\left(2-1\right)!}}={\frac {\left(k+1\right)!}{k!1!}}=k+1}\frac{\left(n+k-1\right)!}{k!\left(n-1\right)!}=\frac{\left(2+k-1\right)!}{k!\left(2-1\right)!}=\frac{\left(k+1\right)!}{k!1!}=k+1, [возможных состояний (кодов)], то есть
описывается линейной функцией:
{\displaystyle N_{kp}(k)=k+1}N_{{kp}}(k)=k+1, [возможных состояний (кодов)], где
{\displaystyle k}k — количество двоичных разрядов.
Например, в одном 8-битном байте (k=8) количество возможных состояний (кодов) равно:
{\displaystyle N_{kp}(k)=k+1=8+1=9}N_{{kp}}(k)=k+1=8+1=9, [возможных состояний (кодов)].
В случае позиционного кода, число комбинаций (кодов) k-разрядного двоичного кода равно числу размещений с повторениями:
{\displaystyle N_{p}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}}N_{{p}}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}, где
{\displaystyle \ k}\ k — число разрядов двоичного кода.
Объяснение:
на 2 pin подключаем кнопку
на 3, 4, 5 pin подключаем светодиоды
а вот скетч
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double x;
void setup(){
pinMode(2,INPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
}
void loop(){
if(!((x) > (3))){
if(((digitalRead(2))==(true))){
x += 1;
while(!(((digitalRead(2))==(false
{
_loop();
}
}
}else{
x = 0;
}
if((x) > (0)){
digitalWrite(3,1);
}else{
digitalWrite(3,0);
}
if((x) > (1)){
digitalWrite(4,1);
}else{
digitalWrite(4,0);
}
if((x) > (1)){
digitalWrite(5,1);
}else{
digitalWrite(5,0);
}
_loop();
}
void _delay(float seconds){
long endTime = millis() + seconds * 1000;
while(millis() < endTime)_loop();
}
void _loop(){
}