#include <stdio.h› #define fiasko (-1) typedef struct{int sxlosilo; char *valoro;} ano; int duonigaSercxo(ano V[], int n, int sx) /*funkciĉapo*/ { int sube = 0, supre = n - 1, meze, sx_m; /*lokaj variabloj*/ while(sube <= supre){ /*ĉapo de komenckondiĉa iteracio*/ meze = (sube + supre) / 2; if((sx_m = V[meze].sxlosilo) == sx) return meze; /*elirejo*/ if(sx < sx_m) supre = meze - 1; else sube = meze + 1; } /*finiĝis la komenckondiĉa iteracio*/ return fiasko; } /*finiĝis la korpo de la funkcio*/
int cxen_al_ent(char *cx) /* faras el signoĉeno cx entjeron */ { int i, n, minuso = 0; /* lokaj variabloj */ for(i = 0; ' ' == cx[i] || '\n' == cx[i] || '\t' == cx[i]; i++); // i := 0; // DUM (cx[i]=' ') AŬ (cx[i]=nl) AŬ (cx[i]=tab) FARU STARTO // STARTO {la vakua iteracikorpo} FINO; // i := i + 1 {la nombrilkremento el la iteraciĉapo} // FINO; switch(cx[i]) { case '-': minuso = 1; case '+': i++; } // alfo := cx[i]; // SE alfo = '-' TIAM AL 1; // SE alfo = '+' TIAM AL 2 ALIE AL 3; // 1: minuso := 1; // 2: i := i + 1; // 3: {daŭrigo...}; for(n=0; cx[i]›='0'&&cx[i]<='9';) n = 10*n+cx[i++]-'0'; // n := 0; // DUM (cx[i] ≥ '0') KAJ (cx[i] <= '9') FARU STARTO // n := 10*n + nro(cx[i]) - nro('0'); // i := i + 1; {postalkremento} // FINO; return (minuso ? -n : n); /* kondiĉa esprimo en revenordono */ }
#define AVXTO auto #define ELIRU break #define OKAZO case #define SIGNA char #define SIGNAJ char #define KOMPLEKSA complex #define KOMPLEKSAJ complex #define KONST const #define PLU continue #define CETERE default #define FARU do #define DUOBLA double #define DUOBLAJ double #define ALIE else #define ENUM enum #define EKSTERA extern #define EKSTERAJ extern #define REELA float #define REELAJ float #define POR for #define AL goto #define SE if #define IMAGINARA imaginary #define MALFERMITA inline #define ENTJERA int #define ENTJERAJ int #define LONGA long #define LONGAJ long #define REGXISTRO register #define REGXISTROJ register #define EKSKLUZIVA restrict #define EKSKLUZIVAJ restrict #define REEN return #define KURTA short #define KURTAJ short #define SIGNUMA signed #define SIGNUMAJ signed #define DABAJTOJ sizeof #define STATIKA static #define STATIKAJ static #define RIKORDO struct #define STRUKTURO struct #define ELEKTU switch #define TIPDIFINO typedef #define UNIO union #define NATURA unsigned #define NATURAJ unsigned #define VAKA void #define VARIEMA volatile #define VARIEMAJ volatile #define DUM while
La programoj uzantaj tiun dosieron devas ĝin importi, ekz-e kiel en la sekva adaptaĵo de la funkcio atoi (Paralelaj tekstoj en C kaj Paskalo):
#include <stdio.h› #include "eoc.h" ENTJERA cxen_al_ent(SIGNA *cx) { ENTJERAJ i, n, minuso = 0; /* lokaj variabloj */ POR(i = 0; cx[i] == ' ' || cx[i] == '\n' || cx[i] == '\t'; i++) ; ELEKTU(cx[i]) { OKAZO '-': minuso = 1; OKAZO '+': i++; } POR(n = 0; cx[i] ≥ '0' && cx[i] ≤ '9';) n = 10 * n + cx[i++] - '0'; REEN minuso ? -n : n ; }