קאָמפּיוטערסווייכווארג

רפּן: אַלגערידאַם, מעטהאָדס און יגזאַמפּאַלז

רפּן אַמאָל געגרינדעט די יקער פון אַ קאָמפּיוטער פּראָגראַמיסט אין דער וועלט. הייַנט עס איז נישט אַזוי גוט באקאנט. דעריבער, קאָמיקער געמעל, דיפּיקטינג אַ "פאַרקערט" פּויליש ווורשט ראָללס אַרויס, קענען נאָך זיין מיסאַנדערסטוד דורך עטלעכע נאַלאַדזשאַבאַל פּראָוגראַמערז. נישט זייער געזונט דערקלערן די וויץ, אָבער אין דעם פאַל עס וועט זיין גאָר גערעכט.

ינפיקס

אַלע פּראָוגראַמערז, און רובֿ סטודענטן זענען באַקאַנט מיט די נוצן פון אָפּערייטערז. למשל, דער אויסדרוק X + סוממאַטיאָן וואַלועס פֿאַר די וועריאַבאַלז רענטגענ און י געניצט פּלוס צייכן. ווייניקער באַוווסט איז די פאַקט אַז דאָס איז באַראָוד פון מאטעמאטיק נאָוטיישאַן, גערופֿן ינפיקס נאָוטיישאַן, אין פאַקט, איז אַ גרויס פּראָבלעם פֿאַר די מאשינען. דעם אָפּעראַטאָר נעמט ווי ינפּוט צוויי וואַלועס זענען רעקאָרדעד אויף די לינקס און רעכט. אין פּראָגראַממינג נאָוטיישאַן געניצט אָפּטיאָנאַללי מיט וואונדער אַפּעריישאַנז. לעמאָשל, X + י קענען זיין געשריבן ווי אַ פֿונקציע פון פאַרלייגן (X, י), אין וואָס די קאַמפּיילער און יווענטשאַוואַלי קאַנווערץ ינפיקס נאָוטיישאַן. אָבער, אַלעמען ווייסט די מאַט איז אויך גוט נישט צו נוצן אַריטמעטיק אויסדרוקן, וואָס פאָרעם אַ מין פון ינערלעך מיני-שפּראַך אין כּמעט יעדער פּראָגראַממינג שפּראַך.

פאָרמולע יבערזעצער

דער ערשטער טאַקע מצליח פאָרטראַן פּראָגראַממינג שפּראַך האט ווערן אַזוי לאַרגעלי ווייַל די אַריטמעטיק אויסדרוק (ד"ה פאָרמולע ..) עס קאָנווערטעד (בראָדקאַסט) אין די קאָד, דעריבער די נאָמען פון עס - פאָרמולע איבערזעצונג. איידער צו אַז, זיי האבן צו שרייַבן, למשל, פאָלדעד אין די פאָרעם פון פֿעיִקייטן (און מערן (ב, C)). אין קאָובאָל פּראָבלעם פון ימפּלאַמענטינג אָטאַמאַטיק קאַנווערזשאַן פאָרמולע איז געהאלטן זייער שווער ווייַל די פּראָוגראַמערז האט צו שרייַבן זאכן ווי צוגעבן א צו ב מוטליפּלי דורך סי

וואָס איז קאַליע מיט ינפיקס?

די פּראָבלעם איז, אַז די אָפּערייטערז האָבן אַזאַ פּראָפּערטיעס ווי פאָרהאַנט און אַססאָסיאַטיוויטי. ווייַל פון דעם, די דעפֿיניציע פון ינפיקס פֿונקציע ווערט ניט-נישטיק אַרבעט. לעמאָשל, קייפל האט העכער פאָרהאַנט ווי דערצו אָדער כיסער, וואָס מיטל אַז די אויסדרוק 2 3 * 4 איז ניט גלייַך צו די סאַכאַקל פון 2 און 3, געמערט דורך 4, ווי עס וואָלט זיין אין די אויפֿפֿירונג פון די אָפּערייטערז פון לינקס צו רעכט. אין פאַקט, מערן 3 דורך 4 און לייגן 2. דאס לעמאָשל ילאַסטרייץ אַז די כעזשבן פון די ינפיקס אויסדרוק אָפֿט ריקווייערז אַ ענדערונג אין דער סדר פון אָפּערייטערז און אָפּעראַנדס. אין דערצו, עס איז נייטיק צו נוצן ברייסאַז צו קוקן מער קלאָר נאָוטיישאַן. לעמאָשל, (2 + 3) * (4 + 5) קענען ניט זיין געשריבן אָן די קלאַמערן, ווייַל 2 3 * 4 + 5 מיטל אַז איר דאַרפֿן צו מערן 3 דורך 4 און לייגן 2 און 5.

דער סדר אין וואָס איר ווילן צו רעכענען די אָפּערייטערז ריקווייערז אַ לאַנג געדענקען. ווייַל פון דעם, סטודענטן וואס אָנהייבן צו לערנען אַריטמעטיק, אָפֿט באַקומען די אומרעכט רעזולטאַטן, אַפֿילו אויב די פאַקטיש אַפּעריישאַנז זענען געטאן ריכטיק. עס איז נייטיק צו לערנען די סדר פון קאַמף סטייטמאַנץ דורך האַרץ. ערשטער, דער קאַמף מוזן זייַן געטראגן אויס אין קלאַמערן, דעמאָלט קייפל און אָפּטייל, און לעסאָף דערצו און כיסער. אבער עס איז אן אנדער וועג פון שרייבן מאַטאַמאַטיקאַל אויסדרוקן ווי ינפיקס נאָוטיישאַן איז בלויז איין פון די מעגלעך "קליין שפּראַכן" אַז קענען ווערן צוגעלייגט צו מער.

פּרעפיקס און פּאָסטפיקס נאָוטיישאַן

צוויי פון די מערסט געזונט-באקאנט אַלטערנאַטיוועס איז צו רעקאָרדירן די אָפּעראַטאָר פֿאַר אָדער נאָך זייַן אָפּעראַנדס. זיי זענען באקאנט ווי די פּרעפֿיקס און פּאָסטפיקס נאָוטיישאַן. לאָגיסיאַן יאַן לוקאַסעוויטש ינווענטאַד דער ערשטער איינער אין 1920. ער האט געלעבט אין פוילן, אַזוי די רעקאָרד איז גערופֿן פּויליש. פּאָסטפיקס ווערסיע, ריספּעקטיוולי, גערופֿן ריווערס פויליש נאָטאַטיאָן (אַרף). דער בלויז חילוק צווישן די צוויי מעטהאָדס איז די ריכטונג אין וועלכע צו לייענען די רעקאָרד (פון לינקס צו רעכט אָדער רעכט צו לינקס), אַזוי עס איז גענוג צו באַטראַכטן אין דעטאַל בלויז איין פון זיי. די אָפּן אָפּעראַטאָר איז געשריבן נאָך זייַן אָפּעראַנדס. אזוי, דער אויסדרוק אַב, + רעפּראַזענץ אַ בייַשפּיל רפּן פֿאַר א + בי

ונלימיטעד נומער פון אָפּעראַנדס

די באַלדיק מייַלע פון נאָוטיישאַן איז אַז עס סאַמערייזיז די N-אַדיק אָפּעראַטאָר און ינפיקס נאָוטיישאַן איז טאַקע בלויז אַרבעט מיט צוויי אָפּעראַנדס, ה. י ביסט ינכעראַנטלי פּאַסיק בלויז פֿאַר ביינערי אַפּעריישאַנז. לעמאָשל, אַבק @ איז די פאַרקערט פּויליש אויסדרוק ניצן טריאַדיק צייכן וואָס איז די מאַקסימום ווערט פון א, ב און סי אין דעם פאַל דער אָפּעראַטאָר אקטן אויף די לינקס פון די דרייַ אָפּעראַנד זיך און קאָראַספּאַנדז צו אַ פֿונקציע רופן @ (א, ב, C). אויב איר פּרובירן צו שרייַבן די @ סימבאָל ווי ינפיקס, אַזאַ ווי אַ @ בק אָדער עפּעס ווי אַז, עס ווערט קלאָר אַז עס נאָר טוט נישט אַרבעטן.

די בילכערקייַט געגעבן דורך די סדר

רפּן האט אן אנדער מייַלע אין אַז די בילכערקייַט פון די אָפּערייטערז קענען זיין רעפּריזענטיד דורך די סדר פון זייער אויסזען. אין דער זעלביקער צייַט קיינמאָל דאַרפֿן ברייסאַז, כאָטש זיי זאלן ווערן ווי אותיות אַפּעריישאַנז פֿאַר גרינג די קאַנווערזשאַן פון ינפיקס נאָוטיישאַן. לעמאָשל, אַב + C * - אַנאַמביגיאַוואַס עקוויוואַלענט (א + בייטן) * C, אַזוי די קייפל קענען ניט זיין קאַלקיאַלייטיד ביז די דערצו געטאן, וואָס גיט אַ רגע אָפּעראַנד פֿאַר קייפל. אַז איז, אויב די קאַלקיאַלייטיד אַב + C * דורך איינער אָפּעראַטאָר אין אַ צייַט, מיר באַקומען אַב + C * -> (אַב +) * C -> (א + בייטן) * סי

כעזשבן אַלגערידאַם

די אָפּן אָפּעראַטאָר קוקט די זעלבע ווי אַ פֿונקציע וואָס נעמט ווי טענות צוויי וואַלועס געשריבן אויף איר לינקס. אין דערצו, עס איז אַ נאַטירלעך נאָוטיישאַן פֿאַר נוצן אין פּראָגראַממינג שפּראַכן, ווי דער שטייגער פון זייַן כעזשבן קאָראַספּאַנדז צו די אָנלייגן אַפּעריישאַנז און די נויט פֿאַר פּאַרסינג איז ילימאַנייטאַד. למשל, דער אַררעסטער אין די אויסדרוק 5 + 6 * 7 וועט דערשייַנען ווי אַ 5, 6, 7 *, +, און עס קענען זיין קאַלקיאַלייטיד נאָר דורך סקאַנינג פון לינקס צו רעכט און שרייַבן די וואַלועס אין אַ אָנלייגן. ווען אַ פּראָסט צייכן פון אָפּעראַציע, אויסגעקליבן דורך די אויבערשטער עלעמענט 2 פון די קאָמפּיוטער זיקאָרן, דער אָפּעראַטאָר איז געניצט און דער רעזולטאַט אומגעקערט צו זכּרון. ווען דער סוף רעזולטאַט פון די כעזשבן אויסדרוק וועט זיין אין די שפּיץ פון די אָנלייגן.

למשל:

  • ד = () 5, 6, 7, *, + 5 געשטעלט אויף די אָנלייגן.
  • ד = (5) 6, 7, *, + 6 געשטעלט אויף די אָנלייגן.
  • ד = (5, 6), 7 *, 7, + שטעלן די אָנלייגן.
  • ד = (5, 6, 7), * 2 + קלייַבן וואַלועס פון דעם אָנלייגן, נוצן * און שטעלן די רעזולטאַט אין די אָנלייגן.
  • ד = (5, 6 * 7) = (5, 42), + 2 וואַלועס אויסגעקליבן פֿון דעם אָנלייגן, צו צולייגן די + און שטעלן די רעזולטאַט אין די אָנלייגן.
  • ד = (5 + 42) = (47) כעזשבן איז געענדיקט, דער רעזולטאַט איז סטאָרד אין די שפּיץ פון די אָנלייגן.

דעם אַלגערידאַם קענען ווערן אָפּגעשטעלט רפּן ריפּיטידלי, אָבער יעדער מאָל עס וועט אַרבעט, קיין ענין ווי קאָמפּליצירט די אַריטמעטיק אויסדרוק.

אָפּן און סטאַקס זענען ענג לינגקט. דעם בייַשפּיל דעמאַנסטרייץ ווי צו נוצן די זיקאָרן צו רעכענען די ווערט פון די פאַרקערט פּויליש נאָוטיישאַן. ווייניקער קלאָר ווי דער טאָג איז אַז איר קענען נוצן די אָנלייגן, קאַנווערטינג נאָרמאַל ינפיקס אויסדרוק אין אַקוטע רענאַל דורכפאַל.

עקסאַמפּלעס פון פּראָגראַממינג שפּראַכן

פּאַסקאַל רפּן איינגעזען ווי דעם (ווייזט די טייל פון די פּראָגראַם).

צו לייענען די נומערן און אָפּערייטערז אין די ציקל גערופֿן פּראָצעדור, וואָס דאַטערמאַנז צי די סימען נומער אָדער צייכן אָפּעראַציע. אין דער ערשטער פאַל, די ווערט סטאָרד אין די אָנלייגן, און די רגע פון די צוויי אויבערשטער אָנלייגן נומערן קאָראַספּאַנדינג קאַמף איז געטאן און דער רעזולטאַט איז סטאָרד.

טאָקטיפּע: = NUM;

לייענען (s);

אויב C אין [ ', +', '-', '*', '/'] דעריבער נעמען

אויב עאָלן דעמאָלט קן: = '' אַנדערש לייענען (CN);

אויב קן = '' דעמאָלט

פאַל פון אַ

'+': טאָקטיפּע: = לייגן; '-': טאָקטיפּע: = סאַב;

'*': טאָקטיפּע: = mul; '/': טאָקטיפּע: = div

עק

אַנדערש נעמען

אויב אַ = '-' דעמאָלט סגן: = -1 אַנדערש טעות: = C <> '+';

מיט: = קן

עק

סוף;

אויב (ניט טעות) און (טאָקטיפּע = NUM) דעריבער געטנומבער;

אויב טאָקטיפּע <> NUM דעריבער נעמען

י = קנאַל; רענטגענ: = קנאַל;

אויב איר טאָן ניט טעות דעמאָלט

פאַל טאָקטיפּע פון

לייגן: Z: = x + י; סאַב: Z: = רענטגענ-י; mul: Z: = X * י; div: Z: = רענטגענ / י

עק

שטופּן (ז);

C-ימפּלאַמענטיישאַן רפּן (געוויזן טייל פון די פּראָגראַם):

פֿאַר (ס = סטרטאָק (ד, ד); s; ס = סטרטאָק (0, וו)) {

אַ = סטרטאָד (s, & E);

אויב (E> s) שטופּן (אַ);

#דעפינע רפּנאָפּ (רענטגענ) פּרינטף ( "% C:", * s), ב = קנאַל (), אַ = קנאַל (), שטופּן (רענטגענ)

אַנדערש אויב (* s == '+') רפּנאָפּ (א + ב);

אַנדערש אויב (* s == '-') רפּנאָפּ (א - ב);

אַנדערש אויב (* s == '*') רפּנאָפּ (אַ * ב);

אַנדערש אויב (* s == '/') רפּנאָפּ (אַ / b);

#ונדעף רפּנאָפּ

}

ייַזנוואַרג ימפּלעמענטאַטיאָנס

אין יענע טעג, ווען קאָמפּיוטער טעכנאָלאָגיע איז געווען זייער טייַער, עס איז געווען געדאַנק אַ גוט געדאַנק צו קראַפט מענטשן צו נוצן סערדזש אַררעסטערס. אין 1960-יעס., ווי איצט, עס איז מעגלעך צו קויפן די קאַלקולאַטאָרס, וואָס אַרבעט אין פאַרקערט פּויליש נאָוטיישאַן. צו לייגן 2 און 3 פון זיי מוזן אַרייַן 2, דעמאָלט 3, און דריקן די "פּלוס" קנעפּל. אין ערשטער בליק, די ינפּוט אָפּעראַנדס צו דער אָפּעראַטאָר געווען קאָמפּליצירט און שווער צו געדענקען, אָבער נאָך אַ בשעת עטלעכע זענען אַדיקטיד צו דעם וועג פון טראכטן און קען נישט פֿאַרשטיין וואָס די אנדערע באַשטיין אויף נאַריש ינפיקס, וואָס איז אַזוי קאָמפּליצירט און אַזוי איז באגרענעצט.

בורראָוגהס פירמע אַפֿילו געבויט אַ מאַינפראַמע, וואָס האט קיין אנדערע זכּרון, חוץ אָנלייגן. דער בלויז זאַך וואָס מאכט די מאַשין - געווענדט די אַלגערידאַמז און מעטהאָדס רפּן צו די סענטראַל אָנלייגן. אַלע פון זייַן אַפּעריישאַנז זענען געקוקט ווי אַררעסטערס אָפּערייטערז, וואָס אַפּלייז צו דעם אויבערשטן N וואַלועס. למשל, דער קאָלעקטיוו האט גענומען די צוריקקומען אַדרעס פון די שפּיץ פון די אָנלייגן, און אַזוי אויף. ד די אַרקאַטעקטשער פון אַזאַ אַ מאַשין איז פּשוט, אָבער ניט שנעל גענוג צו קאָנקורירן מיט די מער געוויינטלעך אַרקאַטעקטשערז. פילע, אָבער, נאָך באַדויערן די פאַקט אַז אַזאַ אַ פּשוט און עלעגאַנט צוגאַנג צו קאַמפּיוטינג ווו יעדער פּראָגראַם איז געווען אַן אויסדרוק פון אָפּן, געפֿונען זייַן קאַנטיניויישאַן.

איין מאָל קאַלקולאַטאָרס מיט רפּן זענען פאָלקס, און עטלעכע מענטשן נאָך געבן זיי ייבערהאַנט. אין דערצו, זיי דעוועלאָפּעד אַ אָנלייגן-אָריענטיד שפּראַכן, אַזאַ ווי אַרויס. הייַנט עס איז קליין געניצט, אָבער נאָך פאַרבענקט פון זיין ערשטע ניצערס.

אזוי וואָס איז די טייַטש דזשאָוקס וועגן ריווערס פויליש ווורשט?

אויב מיר יבערנעמען אַז דער אָפּעראַטאָר פון דער ווורשט, די ינפיקס נאָוטיישאַן, עס זאָל זיין ין די זעמל ווי אין קאַנווענשאַנאַל הייס הונט. די רפּן איז ליגן רעכט אין צוויי כאַווז באַקומען גרייט טהערעבעטוועען נאָך כעזשבן. איצט קומט דער שווער טייל - זענעפט. זי איז שוין אויף דער ווורשט, ה. י שוין קאַלקיאַלייטיד ווי אַ ונאַרי אָפּעראַטאָר. עס איז געגלויבט אַז זענעפט זאָל אויך זיין געוויזן ווי ונקאַלקולאַטעד און דעריבער זאָל זיין באווויגן צו די רעכט פון דער ווורשט ... אבער עס איז מעגלעך, דעם וואָלט דאַרפן אויך גרויס אָנלייגן פון ...

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 yi.atomiyme.com. Theme powered by WordPress.