AGFRENCH PASb@FRENCH2 PAS7FRENCH3 PAS.FRENCH1 PASE-XFRENCH COMr}WFRENCH+GDOC2FRNONOUNDAT1JFRNOUN DATM4;program french; {$iglobdefs.pas} {$istdutil.pas} {$istdio.pas} {$ifrench1.pas} {$ifrench2.pas} {$ifrench3.pas} procedure givequiz(var quiz:quiztype;var order:integerarray; numberquestions:integer; var quizitems: stringarray; var wrong: booleanarray; var numberwrong: integer); { french version } var line,french,english,response :textline; genderresponse,genderchar,c :character; k :integer; answerok,error,genderok :boolean; procedure stripnl(var s:textline); var i :integer; begin i := index(NEWLINE,1,s); if i<>0 then s[i] := EOS; {remove newline from line} end; procedure ncopy(var src:textline; si:integer; var dest:textline; di:integer; count:integer); { copies at most "count" characters from src[si] to dest[di] } begin while (src[si] <> EOS) and (count>0) and (max(si,di)<=MAXSTR) do begin dest[di] := src[si]; si := si + 1; di := di + 1; count := count - 1; end; if di > MAXSTR then di := di - 1; dest[di] := EOS; end; procedure decode(var line,french,english:textline; var genderchar :character; var decodeerror:boolean); var k,v,v1,i,j :integer; begin stripnl(line); v:= index(SLASH,1,line); decodeerror := false; if v >= 2 then begin ncopy(line,1,french,1,v-1); v1 := index(SLASH,v+1,line); if (v1 <> 0) then { have noun } begin if v1-v <> 2 then decodeerror := true else begin genderchar := line[v+1]; scopy(line,v1+1,english,1); end; end else { have non-noun } scopy(line,v+1,english,1); end else decodeerror := true; end { decode }; function match(var response,target:textline):boolean; { returns 'true' if response matches one of the items in target } var matched,endofstring :boolean; substring :textline; v,start :integer; begin matched := false; endofstring := false; start := 1; if slength(response) > 0 then while (not matched) and (not endofstring) do begin v := index(SEMICOLON,start,target); if v=0 then begin scopy(target,start,substring,1); endofstring := true; end else begin ncopy(target,start,substring,1,v-start); start := v + 1; end; matched := equal(response,substring); end; match := matched; end { match }; begin (* givequiz *) numwrong := 0; writeln; for k := 1 to numquizquestions do begin wrong[k] := false; line := quizitems[order[k]]; decode(line,french,english,genderchar,error); if error then begin writeln('FORMAT ERROR IN DATA:'); putstr(line,TRMOUT); end else case quiz of FRENCHTOENGLISH: begin putstr(french,TRMOUT); write('? '); if getline(response,TRMIN,MAXSTR) then begin stripnl(response); ucline(response); answerok := match(response,english); end else answerok := false; if not answerok then begin write(' NO ... '); putstr(english,TRMOUT); writeln; wrong[k] := true; numwrong := numwrong + 1; end end; ENGLISHTOFRENCH: begin putstr(english,TRMOUT); write('? '); if getline(response,TRMIN,MAXSTR) then begin stripnl(response); ucline(response); answerok := match(response,french); end else answerok := false; if not answerok then begin write(' NO ... '); putstr(french,TRMOUT); writeln; wrong[k] := true; numwrong := numwrong + 1; end; end; GENDER: begin putstr(french,TRMOUT); write('? '); repeat genderresponse := toupper(getc(c)); until genderresponse in [NEWLINE,ord('M'),ord('F')]; if genderresponse <> NEWLINE then writeln; if genderresponse <> genderchar then begin if genderchar = ord('M') then writeln(' NO ... MASCULIN') else writeln(' NO ... FEMININ'); wrong[k] := true; numwrong := numwrong + 1; end; end; end (* case *); end (* for k *); end (* givequiz *); procedure givescore(numquestions,numwrong:integer); begin writeln; writeln(numquestions,' ITEMS GIVEN, ',numwrong,' WRONG.'); if numquestions > 0 then writeln('SCORE = ',(numquestions-numwrong)*100/numquestions:3:0, ' PERCENT.'); writeln; end; procedure getrepeatoption(var option:repeatoption); var c :character; j,k :integer; begin writeln('SELECT ONE:'); writeln; writeln('1 - REPEAT WITH SAME WORD LIST'); writeln('2 - REPEAT ONLY MISSED ITEMS'); writeln('3 - NEW QUIZ'); writeln('4 - EXIT PROGRAM'); repeat writeln; write('? '); c := getc(c); until c in [ord('1')..ord('4')]; writeln; option := SAMEWORDS; j := c-ord('1'); for k := 1 to j do option := succ(option); end; procedure reinit(var option: repeatoption; wrong: booleanarray; numwrong: integer; var numquizquestions: integer); var j,k :integer; begin if option = WRONGWORDS then begin j := 1; for k:=1 to numquizquestions do if wrong[k] then begin order[j] := order[k]; j := j + 1; end; numquizquestions := numwrong; end else if option = SAMEWORDS then begin numquizquestions := numquestions; for k:=1 to numquestions do order[k] := k; end; if option in [WRONGWORDS,SAMEWORDS] then clrscr; end; begin (* main program *) lowvideo; { Turbo intrinsic } quit := false; ioinit(2); randomize; { Turbo intrinsic fn. } while (not quit) do begin clrscr; { Turbo intrinsic fn. } writeln('FRENCH VOCABULARY QUIZ PROGRAM'); writeln; writeln('BY JON DART ... VERSION 1.9 (10-JUL-85)'); openfiles(nounfile,nonounfile); getquiztype(quiz); readsizes(numnouns,numnonouns); if quiz = GENDER then maxitems := numnouns else maxitems := numnouns + numnonouns; getnumquestions(quiz,numquestions,maxitems); if numquestions > 0 then begin fillarray(quiz,quizitems,numquestions, numnouns,numnonouns,maxitems); for k:=1 to numquestions do order[k] := k; numquizquestions := numquestions; repeat scramble(order,numquizquestions); givequiz(quiz,order,numquizquestions,quizitems, wrong,numwrong); givescore(numquizquestions,numwrong); getrepeatoption(option); reinit(option,wrong,numwrong, numquizquestions); until option in [NEWQUIZ,EXIT]; quit := option = EXIT; end; pclose(nounfile); pclose(nonounfile); end; end. (* French vocabulary test program *) (* by Jon Dart, 1866 Diamond St., San Diego, CA 92109 *) (* Version 1.9, 10-JUL-85 *) const maxquestions = 50; (* max. num of questions/quiz *) type quiztype = (FRENCHTOENGLISH,ENGLISHTOFRENCH,GENDER); repeatoption = (SAMEWORDS,WRONGWORDS,NEWQUIZ,EXIT); stringarray = array[1..maxquestions] of textline; integerarray = array[1..maxquestions] of integer; booleanarray = array[1..maxquestions] of boolean; var nounfile, nonounfile :filedesc; numquizquestions :integer; numquestions :integer; numnouns,numnonouns :integer; numwrong :integer; maxitems,k :integer; quizitems :stringarray; order :integerarray; wrong :booleanarray; quit :boolean; quiz :quiztype; option :repeatoption; procedure openfiles(var nounfile,nonounfile:filedesc); var name1,name2 :textline; begin setstring(name1,'FRNOUN.DAT'); nounfile := open(name1,IOREAD); if nounfile = IOERROR then error('Can''t Open FRNOUN.DAT'); setstring(name2,'FRNONOUN.DAT'); nonounfile := open(name2,IOREAD); if nonounfile = IOERROR then error('Can''t Open FRNONOUN.DAT'); end; procedure readsizes(var numnouns,numnonouns: integer); (* read the first lines of NOUN.DAT and NONOUN.DAT, which should contain the num of lines in each file *) var s :textline; c :character; i :integer; begin if getline(s,nounfile,MAXSTR) then begin i:=1; numnouns := ctoi(s,i); end; if getline(s,nonounfile,MAXSTR) then begin i := 1; numnonouns := ctoi(s,i); end; end; procedure getquiztype(var quiz:quiztype); var c :character; junk :character; j,k :integer; begin writeln; writeln('SELECT ONE:'); writeln; writeln('1 - WORD QUIZ: FRENCH TO ENGLISH'); writeln('2 - WORD QUIZ: ENGLISH TO FRENCH'); writeln('3 - GENDER QUIZ (NOUNS ONLY)'); writeln; repeat write('? '); junk := getc(c); if not (c in [ord('1'),ord('2'),ord('3')]) then writeln; until c in [ord('1'),ord('2'),ord('3')]; j := c-ord('1'); quiz := FRENCHTOENGLISH; for k:=1 to j do quiz := succ(quiz); writeln; end; procedure getnumquestions(var quiz:quiztype; var numquestions, maxitems:integer); var ok :boolean; s :textline; i :integer; begin repeat write('HOW MANY QUESTIONS (50 MAX.)? '); if getline(s,TRMIN,MAXSTR) then begin i := 1; numquestions := ctoi(s,i); end; if not numquestions in [0..50] then begin writeln('ERROR - MUST BE 0-50'); ok := false; end else if numquestions > maxitems then begin writeln('ONLY ',maxitems,' AVAILABLE.'); ok := false; end else ok:=true; until ok; end (* getnumquestions *); procedure ucline(var s:textline); { makes line upper-case } var k :integer; begin k := 1; while s[k] <> EOS do begin s[k] := toupper(s[k]); k := k + 1; end; end; procedure fillarray(var quiz:quiztype;var quizitems:stringarray; numquestions,numnouns,numnonouns, maxitems :integer); var line :textline; t,k,numfilled :integer; endoffile :boolean; begin writeln; writeln('READING DATA FILES'); numfilled := 0; if quiz <> GENDER then begin t := (numquestions*numnonouns) div maxitems; k := 0; endoffile := false; while (t > 0) and (k < numnonouns) and (not endoffile) do begin if getline(line,nonounfile,MAXSTR) then begin k := k + 1; if random <= (t/(numnonouns - k + 1)) then begin numfilled := numfilled + 1; ucline(line); quizitems[numfilled] := line; write('.'); t := t - 1; end; end else endoffile := true; end; end; t := numquestions - numfilled; k := 0; endoffile := false; while (t > 0) and (k < numnouns) and (not endoffile) do begin if getline(line,nounfile,MAXSTR) then begin k := k + 1; if random <= (t/(numnouns - k + 1)) then begin numfilled := numfilled + 1; ucline(line); quizitems[numfilled] := line; write('.'); t := t - 1; end; end else endoffile := true; end; writeln; end (* fillarray *); procedure scramble(var order:integerarray; numquestions: integer); var k,k1,k2,temp :integer; begin for k:=1 to numquestions*3 do begin k1 := random(numquestions) + 1; k2 := random(numquestions) + 1; temp := order[k1]; order[k1] := order[k2]; order[k2] := temp; end; end;  ͫCopyright (C) 1985 BORLAND IncBHeath/Zenith H89ctedPqtqY ELE MKp1q1~7#~= oͦkԄ!!"~#(}:$= +*!5!*!!:(2!5:(>2!!!:O::O:!*! !45(! +/ 0y0( d!k5!{5__o&  :(͠|(  *"x2y( >28!"9!! og2"">~22 9/4*9 Co&ͦͣ} [ (!e{ͦA8Q0G: x@!\w# (͂ ?(*( .( w^. ^!h6# (?( *( ͂( w#>?> w#ͦ 8 !ɿ .,;:=?*[]<>{}a{ |ʹ}ͽƐ'@'7||}>2ͯ*Bڨ  "og"2>2! ""*B"[Ru*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#Eͺw}8' RB0 >' RqRR!+ Ͱ R!+ Ͱ r!+ Ͱ r!+ Ͱ r!# Ͱ r!+ Ͱ T]KB!z> S>))0 = | |̀̀DMgo>jB0 7?= H͒<z5a)a<z {0Gɯgo||~}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'd } ) W _}8(8J`9{T]=o`9y ) >' ́ ͬ͗ }>' xˆ }} ˸T}ٕ(0D=z ,= ( ͒ 0%{ , 7 ?(8ͬ x ͆ - r 8˸x ͏  ,-xG}r }مM 9r .>#n0͒ { = - nx ͇ ,-(-˸G,-r }ٕ?M 9.> 8ͬ ?= u+-(>͆ 0ͬ ͆ 8 ?x ͇ , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx( ?}ٽ }ցr <(r 7{ = |٤g{٣_z٢Wy١Ox٠G{ ͬ ́ }x>' ͬ}ƀ/ƀo -́ }0͎-́ ͎,}l˸ 8 4 ͗ x( - 8́ - 8,́ }l8;*!͗ ! >4ͬ͗ ͗ ͬ--- ́ ,,,-xGg?+2n*8t z~,->' x' ͘}. ͆́ , ! >4,͢- o&0%,͗ }gr }؉}颋.:}8c~I$I~L*͢ٷx˸ }0G,<},-(-́ !>I0 ͗͘ o8 ͆ >' m.`1pF,t6|!wS<.z}[|%FXc~ur1}͆ٯx(<˸ 8 !~J 0.O!>s 8 =  n s͗ ͆ .n 0 ͎-́ OT0 j oD,:j !I}袋.}8c~I$I~L! >ͬ͗ I× nn ͗ = ͆ nf^VNF!DLT\I!!53!r1!͒!> x #-= o˸x͆(- }(x>8(z ,z `iÃ!>' |r |̀>)=|(DMbo˸88x(0 8> ̀x(>-{(ay( z(>. ( {>E>+|(|Dg>-|/ 0:p# ~# +>0w#,-  60#}˸}րogM| .(z = ~> x0w#xG%͇ %͇ ZJDM%͇ = _~65+~hìx-Sx9?+{Η@}|z z gZJDM0{ ,7}o˸? #yO!@9i&?  #?w#?/w#?w#!9! E9!!9~(+Fͺ!"9!(#>2*"| >"2:( Ͷ *w*6 !\$![ (ͦ( #:~CONTRMKBDLSTCAUXUSR>2i:*ˮ~0:*:(@q##pZ* :(  ~* < >26"!"""~>2""v>2>"!"ˮ(!~8>~O6~*"w(6(2(-()(6 (8 0 :(* y(~#+ (( 66 #6 #"*: y~o p .##~ͺ(.6w4._~ =*##55= *[R8*~#"= ͣ}== ͯ}͵}*#w+#~+>*~('k!0(ˮ]k!8ˮ!]~-#8~>27kˮw>O$6̃s #r$ͣ6̏ k ( (ˮ qk(ˮ ( k ˮ*O:~ ##~._q4((=ʦ==ʩ=ʬò*:4^q*##~6ͺ>2}*|(̓|( ̓6-#[RM8( G> A~#*'C! !TRUEFALSE!9N#Y~#( G~#> >    "~(kѻ(( !0 (ˮ!!>2Sz:0:*6##ww#w$w#w:  ##N#F*B>2w#w#[s#r> "~ͮ*-w#ww##> ͮÁ""~>2:ZR0 *4#4>2:ZR> *4 #4(> >22*f(/˦:G(##~++ :O x yC!ͺ Q*:G(##~._.͚f<\=<͚*##w ͮ +4 #4x >>2:G("ͮ"*nˮ*0 SZѷR8@* N#F#s#r, 0})jS\*##w+ N#FB ͮr+s>2!T]>)j)0 0= ]R!#]*^#V#N#F#^#V>2Ͱ:0:*6 #-Nw#Fwq#p#6#w#w#w"~Á>">!DM!":*B:!>(>2>">!"2"~ʰ*w#wx(9* :O *-4 #4!*4 #4 *-N#Fq#pV+^Bq#pSZѷR&* s#r$ s#rL <?*L!\  <( !\$>2>2L:>!(* \$\<(!3: [1ð\!(7"~> 2"S"Ns#FrB(Z#\: \<(?*"}K\! !*}#"}! x \* *>) 2""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* uKB!0>' ~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6#K*K*!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#V""6#>O"w2x2*"!F"" &y*"*>2"*"!F"""!\*: Nr!~6go(\R*s#r_2x( s x(T]DMx(R0 U(͝O/o&9q# (!>F0#( ~ ( #]( ~ ( (#}(  i&T-a%â}ͦo*!~6o&|:2 2}:__zѯ2*|KB " z ^C User break+=  I/O Run-time error {ʹ, PC=*ͯNot enough memory Program aborted :ʎ'1!d!I~B>G!P!K!K:͛!ͪ }2A!*A&n&!L}2B*B&}27!*7&n&!U}28*8&}2-*-&-!Eʫ!*-&! R}2.ô!*-&}2.*.&}2#*#&!}2$*$&}2*&V!E!*&! }2"*&}2*&}2!*&n&!L!*&n&!U}o}2*&}2!*&n&!D}2*&}2!*&n&!X͒}2*&""**E"*""*"*""**E"*""*"*"!"!"**+n&!͒EK#*!"*!"#*"*"""}2*^#V*Eʈ#!}2ú#**^#V+*&s*^#V!*s#r!}2*&""*#!"!"!}2*&}o**+n&!͒}oES$**+n&*!!RU#}o}2*&}oEP$*!"#**+!s*&}o}2*&P!R"!"H*H!R!n&!R"͸E$**H+!R*Hn&s*H!"HÍ$**H+!s"MP!!"**+n&!͒EN%!:**+n&e.=P!*!"%!:P!!:""}2*"**+n&́*&͑!͑O}oEʸ%*!"~%**+n&!E%!"%*"*""**^#V+n&́! ͑! ͑OE1&*^#V!*s#r%**^#V+n&}2*&"t"v"x"z*z*x+n&!͒Eʰ&*v*t+*z*x+n&s*x!"x*t!"t`&*v*t+!s"g"i!"]*i*]+n&*g*]+n&*i*]+n&!͒}oE!'*]!"]&*i*]+n&*g*]+n&}2k*k&"W"Y*Y*W%!-Ew'!"K}'!"K*Y*W^#V+n&́!+͑!-͑OEʺ'*W^#V!*Ws#r!"M*Y*W^#V+n&R"E(! *M*Y*W^#V+n&!0R"M*W^#V!*Ws#r'*K*M"[*[!:"B"D"F*F!Eʊ(*D*B+!-s*F}/o|/g#*D*B!.("H(*F! ͥEʴ(*F! *D*B.("B*D*B+*F! E!0s*D*B!+!s*B!"H*H:""8*8!!EA)MToo many files requested.!!$!+:9!s!$!+:9!s!$!+:9!s!!!*8fz)".!$*.+:"0!,!*00*,s#r*09!s*.#é)!*8!!fz:*".!$*.+:9!s*.# *!!/fzg*".!*.!Xs*.#E*!0!9fzʔ*".!*.!Ds*.#r*!:!@fz*".!*.!Xs*.#ß*!A!Zfz*".!*.!Us*.#*![!`fz+".!*.!Xs*.#*!a!zfzH+".!*.!Ls*.#&+!{!fzu+".!*.!Xs*.#S+Ì-"""!}2*"**:p!Eʆ-*!|g}o}2*&!E,*p*7*]s#r*5!s#r*3!!s#rS-*&!ED,*o*3!s#rS-*&!ES-*p*]"!*!}oE=-**!Ro**0^#V!;**!Ro!"!}2*!͸*&}o}oE*-*0^#V*+n&!}2*&}oE'-*!",*3*s#rS-*o*3!s#r!Eʆ-!}2*9*s*2!s*&"'")*)$P!!}2+!}2!"*!͸*&}o}oE@.!$*+:9n&!}2*&E1.*'!$*+:!y+E..*}2+=.*!"û-*+&"*$P!+!|!+:p!Eʀ.!|͓}2***&! Eʨ.͛ ö.͛**&" "!ͩ!D *&*s*n&!E.!*s/*n&! E/! *s*n&}2!*!&"*ͷ.*s*n&́.*n&}2*&}2"!}2 !$*&+)))))"*2n&Eʙ/!}2 0*3^#V!E>0*IE/!}2 *2!s.0**0^#V!+!!;́!͑!͑O}oE.0MDisk read error!*3!s#r*0^#V*3^#V+n&*s*3^#V!!R|g}o!E0*5*5^#V!s#r*5^#V*7^#VͥE0*2!s*3*3^#V!s#r* &}2"*&!E)1*!/}21!$*&+)))))"!*&O/E1*&!|g}o*s*n&!Eʙ1!*s*2!s1*n&! *n&! }oE1!*&O/}2! *s1!*s*n&}2*&}2}2!$*&+)))))"*0^#V*3^#V+*&s*3*3^#V!s#r*3^#V!E2**0^#V!+!!ͺ!͒E2MDisk write error!*3!s#r}2}2*&!E3*&́.|3*&!EG3*&! E33!ͺ D3!ͺ*&" |3*&! Em3! *&1! }2*&*&1}2*&́!͑!͑!͑O}oEʔ4!$*&+)))))"*9n&!|g}ó!͑!͑OE}4*9n&!|g}o!E&4!*&2*3^#V!E}4**0^#V!+*3^#V!R!!ͺ *Ͱ *9!s"}2"!"*&!Ej5**+!ͷ.s*&!E5*!E5*!R"!́.! ́.!́.g5*&! ͥ*&!͒}o*&! }oEg5*!"*&́.Ñ5**+!*&0s*!"*&! *&!}o**ͥ}oEʬ4*&!E5*!R"**+!s*&!͒}2*&}2"!"**+n&!͒Ea6**+n&*&2*!"!6""""!}2*!6*!!R͕4}2*#"**+n&! E6**+!s*!+n&́!͑! ͑O}2*&}oEw7**v+}2*&!͒}2*&EA7*&*s!}2t7͛ ͛ͺ Can't open:  *!6͛ ~7!}2*&*&}oE}6*&""!M FRNOUN.DATw$!!v+*s*n&!E7MCan't Open FRNOUN.DAT!!AM FRNONOUN.DATw$!A!v+*s*n&!EP8MCan't Open FRNONOUN.DAT!"="?!*&!R͕4Eʋ8!"!!J'*?s#r!*&!R͕4Eʹ8!"!!J'*=s#r"޴͛ ͛ͺ SELECT ONE: ͛ ͛ͺ 1 - WORD QUIZ: FRENCH TO ENGLISH ͛ͺ 2 - WORD QUIZ: ENGLISH TO FRENCH ͛ͺ3 - GENDER QUIZ (NOUNS ONLY) ͛ ͛ͺ?  !մ!/}2Դ*մ&́!1͑!2͑!3͑O}oEʿ9͛ *մ&́!1͑!2͑!3͑OEx9*մ&!1R"Ҵ!*޴s!*Ҵfz$:"д*޴n&#*޴s*д#:͛ "ʴ"̴"δ͛ͺHOW MANY QUESTIONS (50 MAX.)?  !o!!R͕4Eʒ:!"m!o!mJ'*̴s#r*̴^#V}/o|/ǵ!!2͛OE:͛ͺERROR - MUST BE 0-50 !}28;*̴^#V*ʴ^#VE1;͛ͺONLY *ʴ^#V!&ͺ AVAILABLE. !}28;!}2*&E>:"k!"a*k*a+n&!͒Eʙ;*k*a+*k*a+n&!s*a!"aQ;"U"W"Y"["]"_͛ ͛ͺREADING DATA FILES !"*_n&!͒E<*[*W*U"!"!}2*!**W}o*&}o}oE"*;!"*;!"**+)^#V"**+)**+)^#Vs#r**+)*s#r*#>ËA"z! !*zg%"p*p!͒E>*z*p+!s"f"h"j"l"n*n*l+n&!͒*f!}o*l*hͤ"!R͸}oEp?*j*h+*n*l+n&s*l!"l*h!"h*f!R"f>*h!REʏ?*h!R"h*j*h+!s"T"V"X"Z"\*\͕>!/!*\g%"H!*Ts*H!ͥEʦ@*\!*Z!*H!R>!/*H!*\g%"F*F!͒Eʊ@*F*HR!͒EV@!*TsÇ@*\*H!+n&*Vs*\*F!*X!L&ã@*\*H!*X!L&î@!*Ts"="?!}24!}23!"ݱ*?#!E|A*4&}o*3&}o}oE|A!;*ݱ*=g%"߱*߱!E>A*=*ݱ!!L&!}23jA*=*ݱ!!*߱*ݱR>*߱!"ݱ*?!&}24@*4&}2A*A&"Գ"ֳ"س"ڳ"ܳ"޳!"͛ !*fzD"*ֳ*+!s*س*ܳ*+)^#V+))))))zR!z!(!ֲ!!}͡?*}&EVB͛ͺFORMAT ERROR IN DATA: !z!6øD*޳n&RC!(!6͛ͺ?  !!!R͕4EʰB!͕>!C;!!ֲͯ@}2~÷B!}2~*~&}oE C͛ͺ NO ...  !ֲ!6͛ *ֳ*+!s*!"øDRC!ֲ!6͛ͺ?  !!!R͕4EdC!͕>!C;!!(ͯ@}2~kC!}2~*~&}oEC͛ͺ NO ...  !(!6͛ *ֳ*+!s*!"øDR¸D!(!6͛ͺ?  !!/!}2*&́! ͑!M͑!F͑OEC*&! ͒E1D͛ *&*&͒EʸD*&!ME{D͛ͺ NO ... MASCULIN ÛD͛ͺ NO ... FEMININ *ֳ*+!s*!"*#A"ٱ"۱͛ *۱͛!&ͺ ITEMS GIVEN, *ٱ!&ͺ WRONG. *۱!EsE͛ͺSCORE = *۱*ٱR!d*۱ !!yͺ PERCENT. ͛ "ϱ͛ͺ SELECT ONE: ͛ ͛ͺ1 - REPEAT WITH SAME WORD LIST ͛ͺ2 - REPEAT ONLY MISSED ITEMS ͛ͺ 3 - NEW QUIZ ͛ͺ4 - EXIT PROGRAM ͛ ͛ͺ?  !Ʊ!/}2Ʊ*Ʊ&́!1!4͛OE0F͛ !*ϱs*Ʊ&!1R"ı!*ıfzʶF"±*ϱn&#*ϱs*±#ØF""2"*n&!EUG!"!*^#VfzHG"~!*~+n&E?G!&*+)!&*~+)^#Vs#r*!"*~#F**s#rãG*n&!EʣG**s#r!*fzʣG"~!&*~+)*~s#r*~#}G*n&́!͑!͑OEG>k!}2!)H*&}oEʕI>͛ͺFRENCH VOCABULARY QUIZ PROGRAM ͛ ͛ͺ'BY JON DART ... VERSION 1.9 (10-JUL-85) !!͘7!ͺ8!!Q8*&!EʊH*"ÖH**"!!!.:*!EʀI!!****͚;!*fzI"!&*+)*s#r*#H*"!&*=!!&*!!!͒>**D!}E!!*!ͷF*&́!͑!͑OEI*&!}2*&}3*&}3G *!!!͒>**D!}E!!*!ͷF*&́!͑!͑OEI*&!}2 Vocabulary Quiz Programs (FRENCH and GERMAN) by Jon Dart 1866 Diamond St., San Diego CA 92109 The programs FRENCH and GERMAN are a kind of "electronic flash card" system for learning vocabulary words in these languages. Each program first prompts the user for the number of items in the quiz. Then it randomly selects this number of words from its data files and asks the user for a translation of each word (e.g. French to English or English to French). It can also present a quiz on the gender of nouns. The user can repeat the quiz as many times as desired, until a perfect score has been obtained. The program FRENCH.COM uses two data files, FRNOUN.DAT and FRNONOUN.DAT. FRNOUN contains French nouns, and FRNONOUN contains adjectives and verbs. These are ordinary ASCII files and can be modified or updated using any text editor. The first line of each data file must be a number containing the total number of data items in the file. Every time you add something to the file, you must update this number. The format of the lines is slightly different in the two files. For FRNOUN.DAT, a line looks like this: ATELIER/M/WORKSHOP;STUDIO The first word is French. I have omitted all accent marks and other diacritics in the file. The French word must be followed by a slash ("/") and then by "M" if it is masculine or "F" if it is feminine. Then there is another slash, followed by the English translation. Any number of alternative translations can be given, separated by semicolons. The length of the line, however, cannot exceed 80 columns. The format of the file FRNONOUN.DAT is the same, except that since the words in this file are not nouns, there is no gender for them. A typical line from this file looks like this: ABASOURDIR/TO DEAFEN;TO DAZE The data files included on the disk are all in upper case, and are sorted alphabetically, but neither of these features is necessary; the program will accept lower case entries, and data items can be entered in any order. The French words in the files are fairly difficult, since I have deliberately left out common words (e.g. "maison", "arbre") that I have no difficulty in remembering. The program for German words is very similar. It uses the same format for data files; only the names of the files are different (GENOUN.DAT and GENONOUN.DAT). I have put a quote mark after a vowel in these files to indicate an umlaut. I do not know German as well as I know French, so the data files are shorter and contain simpler words.  244 ABASOURDIR/TO DEAFEN;TO DAZE ABATTRE/TO CUT DOWN;TO CLEAR;TO SUBDUE ABREGER/TO SHORTEN;TO CUT SHORT;TO CONDENSE ACCABLER/TO OVERPOWER;TO WEIGH DOWN ACCAPARER/TO HOARD;TO MONOPOLIZE;TO CORNER;(MARKET) ACCROCHER/TO HANG ACCUEILLIR/TO GREET ACTUEL/PRESENT AGACER/TO ANNOY AIGUISER/TO SHARPEN AILLEURS/ELSEWHERE;SOMEWHERE ELSE ALENTOUR/ROUND ABOUT ALORS QUE/WHEREAS ALOURDI/HEAVY;DULL AMENER/TO BRING;TO LEAD AMER/BITTER AMORCER/TO PRIME;TO START;TO ALLURE APPARTENIR/TO BELONG APPORTER/TO BRING APPRIVOISER/TO TAME ARRACHER/TO UPROOT ARROSER/TO WATER ATTELER/TO HARNESS;TO YOKE ATTERRIR/TO LAND ATTRAPER/TO CATCH AU-DESSOUS/UNDER AU-DESSUS/ABOVE AUPARAVANT/PREVIOUSLY AUPRES DE/NEAR BY AVALER/TO SWALLOW AVILIR/TO DEBASE;TO DEGRADE BALAYER/TO SWEEP BALBUTIER/TO STAMMER;TO MUMBLE BASANE/SWARTHY BAVARDER/TO CHAT;TO GOSSIP BEMOLISER/TO FLATTEN BORNER/TO RESTRICT;TO LIMIT;TO CONFINE BOUCHER/TO CORK;TO OBSTRUCT;TO BLOCK BOURSOUFLER/TO PUFF UP;TO SWELL BRISER/TO BREAK;TO OVERCOME;TO CRUSH BRONCHER/TO STUMBLE BRUINER/TO DRIZZLE BRUMEUX/FOGGY CACHER/TO HIDE CALIFOURCHON/ASTRIDE CASSER/TO BREAK CAUTELEUX/WILY;SLY;FAWNING CENSE/DEEMED;REGARDED;CONSIDERED CERNER/TO SURROUND CHATOUILLEUX/TICKLISH;TOUCHY CHATOYER/TO SHIMMER;TO GLISTEN;TO SPARKLE CHAUSSER/TO PUT ON CHUCHOTER/TO WHISPER CLAPOTER/TO SPLASH COMPLOTER/TO PLOT;TO SCHEME CONCASSER/TO GRIND;TO CRUSH CONCOURIR/TO COOPERATE;TO CONCUR CONFIRE/TO PRESERVE;TO PICKLE CONSTATER/TO ASCERTAIN;TO CERTIFY;TO OBSERVE CONTER/TO RELATE COUDRE/TO SEW CREUSER/TO HOLLOW OUT CROITRE/TO GROW D'ARRACHE-PIED/UNREMITTINGLY DEBARRASSER/TO RID DEBINER/TO RUN DOWN;TO CARP AT DEBOUT/STANDING UP DEBROUILLARD/RESOURCEFUL DECHIRANT/HEART-RENDING DECHOIR/TO DECAY;TO DECLINE DEFAILLIR/TO FAINT DEFRICHER/TO CLEAR;(LAND) DEGRISER/TO SOBER;TO DISILLUSION DELABRE/BROKEN-DOWN DELABRER/TO WRECK DEMEURER/TO RESIDE DEPALLER/TO UNPACK DEPOUILLIR/TO SKIN;TO INSPECT;TO STUDY DESORMAIS/HENCEFORTH DISTRAIT/ABSENT-MINDED DODU/PLUMP;CHUBBY DOMPTER/TO TAME DUMENT/PROPERLY EBLOUIR/TO DAZZLE EBRANLER/TO SHAKE;TO UNSETTLE;TO DISTURB ECLABOUSSER/TO SPLASH ECLATER/TO BURST;TO EXPLODE ECROULER/TO COLLAPSE;TO CRUMBLE EMPECHER/TO HINDER EMPILER/TO STACK;TO PILE UP;TO CROWD EMPORTER/TO TAKE AWAY;TO CARRY OFF EMPRUNTER/TO BORROW EN REVANCHE/IN RETURN;ON THE OTHER HAND ENCEINTE/PREGNANT ENGLOUTIR/TO SWALLOW UP ENSEVELIR/TO SHROUD;TO BURY;(UNDER) ENTAMER/TO OPEN;TO CUT INTO;TO MAKE A DENT IN ENVERS/TOWARDS EPARGNER/TO SAVE EPANOUIR/TO LIGHT UP;TO BRIGHTEN UP EPATER/TO FLATTEN;TO STUN;TO SHOCK EPOUVANTABLE/DREADFUL EPROUVER/TO EXPERIENCE EPUISER/TO EXHAUST;TO WORK OUT ERAILLE/BLOODSHOT ESCOMPTER/TO DISCOUNT;TO COUNT ON;TO ANTICIPATE ESSUYER/TO DUST;TO WIPE;TO SUFFER ESTOMPER/TO BLUR;TO DIM ETALER/TO DISPLAY;TO SHOW OFF ETENDRE/TO SPREAD OUT;TO EXTEND ETIRER/TO STRETCH;TO STRING OUT ETROIT/NARROW;TIGHT EXIGER/TO DEMAND;TO REQUIRE FACHEUX/SAD;UNFORTUNATE FENDRE/TO CLEAVE;TO CRACK;TO SPLIT FENDRE/TO SLIT FESSER/TO WHIP FLETRIR/TO BRAND;TO STIGMATIZE FOISSONER/TO ABOUND;TO SWARM;TO MULTIPLY FONCIERMENT/THOROUGHLY;FUNDAMENTALLY FONDRE/TO MELT FOUILLIR/TO DIG;TO EXCAVATE FOURBE/DECEITFUL;SLY FOURVOYER/TO MISLEAD FRANCHIR/TO CROSS FREMIR/TO SHUDDER FROTTER/TO SCRUB GASPILLER/TO WASTE;TO SQUANDER GELER/TO FREEZE GEMIR/TO MOAN GRASSEMENT/HANDSOMELY;COMFORTABLY GRAVIR/TO CLIMB;TO ASCEND GRELER/TO HAIL GRIMPER/TO CLIMB GRONDER/TO SCOLD GRONDIR/TO SCOLD HISSER/TO HOIST IMPRIMER/TO PRINT INOUIE/UNHEARD-OF JACASSER/TO CHATTER;TO JABBER JADIS/FORMERLY JAILLIR/TO SPURT LACHE/LAX;CARELESS LACHER/TO LOOSEN;TO SLACKEN;TO RELEASE LEGER/LIGHT LIER/TO BIND LISSE/SMOOTH;POLISHED LUIRE/TO SHINE MARTELER/TO HAMMER MAUDIRE/TO CURSE MAUSSADE/SULLEN;CRANKY;GLUM MEDIRE/TO SLANDER MENER/TO LEAD MENTIR/TO LIE MIGNON/CUTE MOUDRE/TO GRIND;TO MILL MOUILLER/TO WET;TO DAMPEN;TO WATER MUR/RIPE NAVRE/HEART-BROKEN NIER/TO DENY NUIRE/TO HARM OCTROYER/TO GRANT;TO BESTOW OISEUX/TRIVIAL;USELESS OISIF/IDLE;UNEMPLOYED OTER/TO TAKE AWAY;TO REMOVE;TO DESTROY OUTRE/EXCESSIVE PAITRE/TO GRAZE PARCOURIR/TO EXAMINE PARIER/TO BET;TO WAGER PENAUD/SHAMEFACED;SHEEPISH PIAFFER/TO PRANCE;TO FIDGET PIAILLER/TO CHIRP PICORER/TO PECK;TO PILFER PLAINDRE/TO PITY PONCIF/CONVENTIONAL;TRITE POUFFER/TO BURST OUT LAUGHING POURSUIVRE/TO PURSUE;TO PROSECUTE PRETER/TO LEND PUISER/TO DRAW;(FROM, UPON);TO BORROW QUOIQUE/ALTHOUGH RAIDE/STIFF;STRAIGHT RANIMER/TO REVIVE;TO RESTORE RATTRAPER/TO RECOVER;TO RECAPTURE;TO CATCH UP RAVAUDER/TO MEND RAVITAILLER/TO PROVISION RECELER/TO HARBOR;TO CONTAIN RECENSER/TO RECORD;TO COUNT REDOUTER/TO DREAD;TO FEAR REJOUIR/TO GLADDEN RELEVER/TO RAISE;TO PICK UP REMACHER/TO RUMINATE;TO PONDER REMPLIR/TO FILL REMPORTER/TO CARRY OFF;TO WIN REMUER/TO MOVE;TO STIR;TO ROUSE REPANDRE/TO SPREAD OUT;TO SPILL;TO SPEND REPOUSSER/TO PUSH BACK;TO REPEL REPROUVER/TO REJECT;TO DISAPPROVE OF RODER/TO ROAM;TO PROWL ROMPRE/TO BREAK;TO BURST RONCHONNIR/TO GROUSE;TO GRUMBLE RONGER/TO GNAW;TO CONSUME SACCADE/JERKY S'ACHIMINER/TO PROCEED SALUER/TO GREET;TO SALUTE S'EMPARER DE/TO SEIZE S'EVANOUIR/TO FAINT SE CASER/TO SETTLE DOWN SE DEBATTRE/TO STRUGGLE;TO FLOUNDER SE FACHER/TO GET ANGRY SE FIER/TO TRUST SE FOURVOYER/TO GO ASTRAY SE HATER DE/TO HURRY SE LIER/TO AGREE WITH;TO MAKE FRIENDS;TO BIND ONESELF SE MEFIER/TO MISTRUST SE METTRE/TO BEGIN TO SE PLAINDRE/TO COMPLAIN;TO LAMENT SE RAVISER/TO CHANGE ONE'S MIND SE TAPIR/TO CROUCH;TO SQUAT SELON/ACCORDING TO SERRER/TO GRASP;TO PRESS;TO SQUEEZE SOUFFLER/TO BLOW SOUHAITER/TO WISH SOURNOIS/UNDERHANDED SOUSTRAIRE A/TO SUBTRACT SUEDOS/SWEDISH SURANNE/OLD-FASHIONED SURNAGER/TO FLOAT;TO SURVIVE SUSCITER/TO CREATE;TO STIR UP;TO PROVOKE TEINDRE/TO DYE TENDRE/TO TIGHTEN TENTER/TO TEMPT TIEDE/LUKEWARM TIRER/TO DRAW OUT;TO PULL TOUSSER/TO COUGH TRACASSER/TO WORRY;TO BOTHER TRAIRE/TO MILK TRESSAILLIR/TO TREMBLE;TO SHIVER TRESSER/TO BRAID;TO PLAIT TRICHER/TO CHEAT;TO TRICK TRUQUER/TO FAKE VERSER/TO POUR VOILER/TO VEIL;TO DIM;TO WARP VOILIER/SAILING VOUGER/TO DRIFT;TO ROW;TO SAIL  330 ABEILLE/F/BEE ABOIEMENT/M/BARKING ABORD/M/APPROACH ABRI/M/SHELTER ACAJOU/M/MAHOGANY AGACEMENT/M/ANNOYANCE AGNEAU/M/LAMB AIGUILLE/F/NEEDLE AILE/F/WING AMENDE/F/FINE AMERTUNE/F/BITTERNESS AMIDON/M/STARCH AMORCE/F/BAIT APPAREIL/M/DISPLAY APPUI/M/SUPPORT ARACHIDE/F/PEANUT ARBUSTE/M/SHRUB ARDOISE/F/SLATE ARPENT/M/ACRE ASSIETTE/F/PLATE ATELIER/M/WORKSHOP;STUDIO AUBAINE/F/GOOD FORTUNE AUBERGE/F/INN AUGE/M/TROUGH;MANGER AUMONE/F/CHARITY AUMONIER/M/CHAPLAIN AVOINE/F/OATS BADAUD/M/IDLER BAGATELLE/F/TRIFLE BAGUE/F/RING BAGUETTE/F/STICK BALAI/M/BROOM BALIVERNES/F/NONSENSE BANC/M/BENCH BANLIEU/F/SUBURB BERGER/M/SHEPHERD BESOGNE/F/WORK BEVUE/F/BLUNDER BIENSEANCE/F/DECENCY BILAN/M/BALANCE-SHEET BILLET/M/TICKET BINETTE/F/HOE BONHEUR/M/HAPPINESS BORD/M/EDGE BORNE/F/POST;PILLAR;LANDMARK;LIMIT BOUCHON/M/CORK BOUGIE/M/CANDLE BOUILLIE/F/GRUEL;PORRIDGE BOURREAU/M/EXECUTIONER BOURRELET/M/BULGE BREBIS/F/EWE;SHEEP;LAMB BRIN/M/BIT BRU/F/DAUGHTER-IN-LAW BUCHERON/M/LUMBERJACK;WOOD-CUTTER BUTIN/M/BOOTY BUVARD/M/BLOTTER CACHETTE/F/HIDING-PLACE CACHOT/M/JAIL CADRAN/M/DIAL CADRE/M/FRAME CAILLOU/M/PEBBLE CALECON/M/SHORTS CAMION/M/TRUCK CAMPAGNE/F/COUNTRYSIDE CANIF/M/PENKNIFE CANNELLE/F/CINNAMON CAOUTCHOUC/M/RUBBER CARGAISON/F/CARGO;FREIGHT CARREAU/M/TILE CARREFOUR/M/CROSSROAD;CROSSROADS CASAQUE/F/JACKET CAUCHEMAR/M/NIGHTMARE CECITE/F/BLINDNESS CEINTURE/F/WAIST;BELT CERCEAU/M/HOOP CERCUEIL/M/COFFIN CERISE/F/CHERRY CERVELLE/F/BRAIN CHAIR/F/FLESH CHALEUR/F/HEAT CHAMP/M/FIELD CHARRUE/F/PLOW CHEMIN/M/ROAD CHENE/M/OAK CHEVEU/M/HAIR CHEVILLE/F/ANKLE CHOMAGE/M/UNEMPLOYMENT CHUTE/F/FALL CLEF/F/KEY COLERE/F/ANGER COLIMACON/M/SNAIL COLLINE/F/HILL COMBLE/M/SUMMIT CONFECTION/F/PREPARATION CONFISRIE/F/CONFECTIONERY COTEAU/M/HILLSIDE COU/M/NECK COUCHANT/M/WEST;SUNSET COUR/F/YARD COURBATURE/F/STIFFNESS COURROIE/F/STRAP COUTEAU/M/KNIFE CRAIE/F/CHALK CRANE/M/SKULL CRAPAUD/M/TOAD CRECHE/F/CRIB CREPUSCLE/M/TWILIGHT CREVETTE/F/SHRIMP CROISSANCE/F/GROWTH CUILLERE/F/SPOON CUIR/M/LEATHER CUISSE/F/THIGH DE/M/THIMBLE DEDAIN/M/SCORN DENTELLE/F/LACE DEPENS/M/EXPENSE DESTIN/M/FATE DETTE/F/DEBT DEUIL/M/MOURNING DISETTE/F/SCARCITY;SHORTAGE DOIGT/M/FINGER DOUANE/F/CUSTOMS DUVET/M/DOWN;FLUFF EBAUCHE/F/SKETCH;OUTLINE EBRANLEMENT/M/DISTURBANCE ECHANTILLON/M/SAMPLE;SPECIMEN ECHELLE/F/LADDER ECHEVEAU/M/SKEIN;MAZE ECHINE/F/SPINE ECLOPE/M/CRIPPLE ECORCE/F/BARK;RIND;PEEL EGIDE/F/PROTECTION EMBONPOINT/M/STOUTNESS EMEUTE/F/RIOT EMPREINTE/F/STAMP;MARK EMPRUNT/M/LOAN ENTENTEMENT/M/STUBBORNNESS ENTRELACS/M/TANGLE EPAULE/M/SHOULDER EPERON/M/SPUR EPINARD/M/SPINACH EPINE/F/THORN;SPINE EPINGLE/F/PIN EPOUX/M/HUSBAND ESCABEAU/M/STEP-LADDER;STOOL ESCALIER/M/STAIRS ETAI/M/PROP;STRUT ETAIN/M/TIN ETANG/M/POOL;POND ETENDUE/F/EXPANSE;SPREAD;RANGE;SCOPE ETINCELLE/F/SPARK ETIQUETTE/F/LABEL;STICKER ETRENNE/F/CHRISTMAS PRESENT ETUI/M/CASE FARDEAU/M/BURDEN FENTE/F/CRACK;SPLIT;CHINK;CLEFT FIL/M/THREAD FINCELLE/F/STRING FLEAU/M/PLAGUE FLECHE/F/ARROW FLOT/M/FLOOD;WAVE;WATERS FOI/F/FAITH FOUDRE/F/LIGHTNING FOUET/M/WHIP FOUILLIS/M/MUDDLE;JUMBLE FOURMI/F/ANT FREIN/M/BRAKE FRISSON/M/SHUDDER FUITE/F/LEAK FUSEE/F/ROCKET FUSIL/M/GUN GABARE/F/BARGE GAGEURE/F/WAGER GAINE/F/SHEATH GAMME/F/SCALE;RANGE GAUFRE/F/WAFFLE;WAFER GENCIVE/F/GUM;(ANAT.) GENOU/M/KNEE GIBIER/M/GAME GIGOT/M/LEG OF LAMB GIROFLE/M/CLOVE GOUFFRE/M/GAP;GULF;PIT GOUGAT/M/APPRENTICE;BOOR;CAD GOUVERNAIL/M/RUDDER;HELM GRADIN/M/STEP;TIER GRAVIER/M/GRAVEL GRE/M/LIKING GREFFIER/M/TOWN CLERK GREVE/F/STRIKE GRIFFE/F/CLAW GUENILLE/F/RAG GUERISON/F/RECOVERY HACHE/F/AXE HALEINE/F/BREATH HEURT/M/KNOCK HIRONDELLE/F/SWALLOW HOBEREAU/M/SQUIRE HOCHET/M/RATTLE HOMARD/M/LOBSTER HONTE/F/SHAME HORLOGE/F/CLOCK HOTTE/F/HOOD;BASKET;CANOPY HOUILLE/F/COAL INSTAR/M/IMITATION INSU/M/IGNORANCE IVROGNE/M/DRUNK JOBARD/M/DUPE;SUCKER JOUE/F/CHEEK JUMEAU/M/TWIN LACHETE/F/COWARDICE LAINE/F/WOOL LAITON/M/BRASS LAMBEAU/M/STRIP;SCRAP LAME/F/BLADE;FOIL LARRON/M/ROBBER LENDEMAIN/M/DAY AFTER LIASSE/F/PACKET LICE/F/BITCH LOCATAIRE/M/TENANT LOGIS/M/LODGING;DWELLING LOUTRE/F/OTTER LUBIE/F/WHIM LUEUR/F/GLEAM;FLASH;RAY LUTTE/F/STRUGGLE MACHOIRE/F/JAW MAILLE/F/STITCH;MESH MAMELLE/F/TEAT;UDDER;BREAST MANCHE/F/SLEEVE MARECAGE/M/SWAMP;BOG;MARSH MASURE/F/SHACK MATELAS/M/MATTRESS MATELOT/M/SAILOR MECHE/F/WICK;LOCK;BIT MENSONGE/M/LIE MEPRIS/M/CONTEMPT;SCORN METIS/M/HALF-BREED MEULE/F/GRINDSTONE MEUTE/F/PACK MIEL/M/HONEY MIETTE/F/CRUMB MOELLE/F/PITH;MARROW;CORE MOEURS/F/MORALS MONTRE/M/WATCH MORUE/F/COD MOUCHE/F/FLY MOUCHOIR/M/HANDKERCHEIF MOUETTE/F/GULL NEANT/M/NOTHINGNESS NERF/M/NERVE NID/M/NEST NOYAU/M/KERNEL;NUCLEUS ONDE/F/WAVE ORAGE/M/STORM OREILLER/M/PILLOW PAILLE/F/STRAW;CRACK;CLEF;FLAW PAN/M/SIDE;SECTION;FACE PANNEAU/M/PANEL;TRAP;SNARL PAON/M/PEACOCK PAPOTAGE/M/CHIT-CHAT PARAVENT/M/FOLDING SCREEN PARDESSUS/M/OVERCOAT PARESSE/F/LAZINESS PARRAIN/M/GODFATHER PARURE/F/ADORNMENT;SET;(JEWELRY) PENTE/F/SLOPE;INCLINE PHARE/M/LIGHTHOUSE;BEACON;HEADLIGHT PIEUVRE/F/OCTOPUS PISTE/F/TRACK;TRAIL PLAFOND/M/CEILING PLAGE/F/BEACH PLAIE/F/WOUND;SORE POMMETTE/F/CHEEK-BONE POUSSIERE/F/DUST POUVOIR/M/POWER PRUNELLE/F/PUPIL PUITS/M/WELL;PIT QUATUOR/M/QUARTET RACCOURCI/M/SUMMARY;ABSTRACT RACINE/F/ROOT;ORIGIN RAINURE/F/GROOVE RAMURE/F/BRANCHES;BOUGHS;FOLIAGE RECOLTE/F/HARVEST REDEVANCE/F/DUES;RENT;FEES REMOUS/M/EDDY;SWIRL RENFORT/M/REINFORCEMENT RENSEIGNEMENT/M/INFORMATION REPLI/M/FOLD RIDEAU/M/CURTAIN;SCREEN RIVAGE/M/SHORE;BEACH RONGEUR/M/RODENT ROTURIER/M/COMMONER;PLEBIAN ROUAGE/M/WHEELS;COG;MECHANISM ROUE/F/WHEEL ROYAUME/M/KINGDOM;REALM RUCHE/M/HIVE;SWARM SABLE/M/SAND SAILLIE/F/PROJECTION;LEDGE;SPURT SAUTERELLE/F/GRASSHOPPER SEAU/M/PAIL;BUCKET SECOUSSE/F/SHOCK SEIN/M/BREAST;BOSOM;WOMB SELLETTE/F/BENCH;DOCK;(JUDICIAL) SERMENT/M/OATH SEUIL/M/THRESHOLD;DOORSTEP SEVIN/M/CANARY SOIN/M/CARE;ATTENTION SUAIRE/M/SHROUD SUEUR/F/SWEAT SUPERCHERIE/F/FRAUD;DECEIT;DECEPTION SUPPLICE/M/TORTURE;PUNISHMENT TAMIS/M/SIEVE TAPIS/M/CARPET TAS/M/HEAP TIGE/F/STALK;TRUNK;STEM TIRE-BOUCHON/M/CORKSCREW TISON/M/EMBER TOURBILLON/WHIRLWIND;WHIRLPOOL;VORTEX TRAME/F/PLOT;WOOF;WEB TRANCHE/F/SLAB;SLICE;PORTION;EDGE TROUPEAU/M/HERD;FLOCK TUYAU/M/TUBE;PIPE;HOSE;(FIG:);TIP;HINT VACARME/M/HUBBUB VANNIER/M/BASKET-MAKER VASQUE/F/BASIN;BOWL VERNIS/M/POLISH VESSIE/F/BLADDER VEUVE/F/WIDOW VITRAIL/M/STAINED GLASS WINDOW VOLET/M/SHUTTER