Documente Academic
Documente Profesional
Documente Cultură
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
a. S se determine numrul persoanelor de sex feminin (primul caracter al cnp-ului este 2)
b. S se afieze lista tuturor claselor i elevii clasei IXA
Rezolvare:
CREATE TABLE elevi.dbf(idd N(3), nume C(20), CNP C(13), clasa C(5))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati nume" to b
accept"dati cnp" to c
accept"dati clasa" to d
replace idd WITH a,nume WITH b,CNP WITH c,clasa WITH d
ENDFOR
USE elevi.dbf
k=0
FOR i=1 TO RECCOUNT()
IF SUBSTR(CNP,1,1)='2'
k=k+1
ENDIF
SKIP 1
endfor
?k
USE elevi.dbf
GO top
LIST nume for clasa='IX-A'
USE elevi.dbf
INDEX on clasa TAG cla ASCENDING
TOTAL ON clasa TO clase.dbf FIELDS idd
USE clase.dbf
GO top
LIST clasa
2. S se creeze tabela angajati cu structura
id (de tip numeric, cmp de identificare unic)
cnp (de tip text sau ir de caractere)
numele (de tip text sau ir de caractere)
an_angajare (de tip dat calendaristic)
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se afieze toate persoanele angajate nainte de 1 ianuarie 2009;
c. S se afieze toate persoanele a cror zi de natere se srbtorete astzi (ziua de natere se va
extrage din codul numeric personal).
Rezolvare:
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se afieze numele filmului cu cele mai mari ncasri
c. S se afieze numele actorului care a jucat n cele mai multe filme
d. S se tearg din tabel toate filmele de tip horror
Rezolvare:
CREATE TABLE filme.dbf(idd N(3), film C(20), tip C(10), actor C(20),incasari N(10))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati film" to b
accept"dati tip" to c
accept"dati actor" to d
input"dati incasari" to e
replace idd WITH a,film WITH b,tip WITH c,actor WITH d,incasari WITH e
ENDFOR
USE filme.dbf
COPY TO filme1.dbf
USE filme1.dbf
replace ALL idd WITH 1
INDEX on actor tag actor ascending
TOTAL ON actor TO actori.dbf FIELDS idd
USE actori.dbf
SORT ON idd TO filme2.dbf DESCENDING
USE filme2.dbf
GO TOP
DISPLAY actor
USE filme.dbf
DELETE FOR tip='horror'
PACK
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se afieze telefonul cel mai scump. Dac sunt mai multe cu pre maxim, se vor afia toate
c. S se afieze marca cea mai prezent n tabel, mpreun cu preul mediu al telefoanelor
respectivei mrci
Rezolvare:
CALCULATE MAX(pretul)to x
LIST marca for pretul=x
USE telefoane.dbf
COPY TO tel.dbf
USE tel.dbf
replace ALL idd with 1
INDEX on marca TAG marca DESCENDING
TOTAL ON marca TO marca.dbf FIELDS idd
USE marca.dbf
SORT TO marca1.dbf ON idd DESCENDING
USE marca1.dbf
GO TOP
x=marca
DISPLAY x
USE telefoane.dbf
CALCULATE AVG(pretul) TO y FOR marca=x
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se creeze o aplicaie care s permit cutarea unui elev dup nume. n caz c exist mai muli
elevi cu acelai nume, se vor afia toi ntr-o list, iar aplicaia trebuie s permit afiarea
informaiilor unui elev care a fost selectat.
Rezolvare:
CREATE TABLE elv.dbf(idd N(3), nume C(20), prenume C(20), int_tata C(2),CNP c(13),clasa C(5))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati nume" to b
accept"dati prenume" to c
accept"dati initiala tata" to d
accept"dati cnp" to e
accept"dati clasa "to f
replace idd WITH a,nume WITH b,prenume WITH c,int_tata WITH d,CNP WITH e,clasa WITH f
ENDFOR
USE elv.dbf
accept"cititi numele elevului" to x
COPY TO numele.dbf FOR nume=x
USE numele.dbf
accept"cititi prenumele elevului" to y
GO top
DISPLAY for prenume=y
Cerine:
a. S se populeze cu date tabela (minimum 10 nregistrri)
b. S se scrie o aplicaie care s permit citirea de la tastatur a dou preuri a i b (cu a < b, valori
ntregi) i afiarea tuturor electronicelor avnd preuri ntre a i b. Aplicaia trebuie s premit i
alegerea (opional) afirii unui anumit tip de produs sau produselor unei mrci anume care au
preuri n intervalul a..b.
Rezolvare:
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se afieze, ordonate descresctor dup anul aparitiei, toate albumele unui anumit autor
c. S se afieze anul n care au aprut cele mai multe albume, precum i acele albume care au
aprut n anul respectiv
Rezolvare:
CREATE TABLE albume.dbf(idd N(3), titlu C(20), autor C(20), an_ap N(4))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati titlu" to b
accept"dati autor" to c
input"dati anul aparitiei" to d
replace idd WITH a,titlu WITH b,autor WITH c,an_ap WITH d
ENDFOR
USE albume.dbf
COPY TO albume2.dbf
USE albume2.dbf
replace ALL idd WITH 1
INDEX on an_ap TAG an DESCENDING
TOTAL ON an_ap TO alb.dbf FIELDS idd
USE alb.dbf
SORT TO album3.dbf ON idd DESCENDING
USE album3.dbf
GO TOP
DISPLAY an_ap
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. Afiai toi angajaii de la secia Administraie.
c. Mrii salariul tuturor angajailor cu 100 RON.
Rezolvare:
CREATE TABLE angajati.dbf(idd N(3), nume C(20), sal N(10), datan D, sectia C(20))
input"dati nr de inregistrari" to n
GO top
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati nume" to b
input"dati salariu" to c
accept"dati data" to d
accept"dati sectia" to e
replace idd WITH a,nume WITH b,sal WITH c,datan WITH CTOD(d),sectia WITH e
SKIP 1
ENDFOR
BROWSE
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. Afiai numerele de telefon ale persoanelor cu prenumele George.
c. tergei din tabel toate persoanele al cror nume ncepe cu litera C.
Rezolvare:
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. Dublai preul pentru PARACETAMOL de la toate farmaciile
c. tergei din toate farmaciile medicamentul ASPIRINA
Rezolvare:
create table medicamente.dbf (id N(2), codm N(2), denumire C(20), cantitate N(5),
pu N(7), codf N(2))
input to n
for i=1 to n
append blank
input to i
input to c
accept to d
input to can
input to p
input to cod
replace id with I, codm with c, denumire with d, cantitate with can, pu with p,
codf with cod
endfor
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. S se determine cea mai frecvent grup sanguin
c. Ce vrst are bolnavul cu numarul de fisa 123 ce sufer de DIABET
Rezolvare:
CREATE TABLE bolnav.dbf(idd N(3), nf N(3), nume C(20),datan D,gs c(3),dgn C(20))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
input"dati numarul fisei" to b
accept"dati numele pacientului" to c
accept "dati data " to d
accept"dati grupa sanguina " to e
accept"dati diagnosticul" to f
replace idd WITH a,nf WITH b,nume WITH c,datan WITH CTOD(d),gs WITH e,dgn WITH f
ENDFOR
USE bolnav.dbf
COPY TO bolnav1.dbf
USE bolnav1.dbf
replace ALL idd WITH 1
INDEX on gs TAG grupasang DESCENDING
TOTAL ON gs TO grs.dbf FIELDS idd
USE grs.dbf
SORT TO blv.dbf ON idd DESCENDING
USE blv.dbf
GO TOP
DISPLAY gs
USE bolnav.dbf
LIST year(date())-year(datan) for nf=123 AND dgn='Diabet'
14. Se consider tabela pacient cu urmtoarea structura:
id (de tip numeric, cmp de identificare unic)
nf (numr ntreg cu maximum 3 cifre - reprezint numr fi )
nume (text sau ir de caractere cu maximum 20 de caractere )
data_n (dat calendaristic)
gs (text sau ir de caractere reprezint grupa sanguin)
diagnostic ( text sau ir de caractere cu maximum 30de caractere)
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. S se determine numrul de bolnavi de ARTRITA care au grupa sanguin AB4.
c. tergeti din tabel toi bolnavii mai mici de 18 ani.
Rezolvare:
CREATE TABLE pacient.dbf(idd N(3), nf N(3), nume C(20),datan D,gs c(3),dgn C(30))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
input"dati numarul fisei" to b
accept"dati numele pacientului" to c
accept "dati data " to d
accept"dati grupa sanguina " to e
accept"dati diagnosticul" to f
replace idd WITH a,nf WITH b,nume WITH c,datan WITH CTOD(d),gs WITH e,dgn WITH f
ENDFOR
USE pacient.dbf
COUNT TO y FOR dgn='Artrita' AND gs='AB'
?y
Cerine:
a. S se creeze i s se populeze cu date tabela(minimum 10 nregistrri).
b. S se completeze cmpul media pentru fiecare elev din tabel folosind formula (nota1+nota2)/2 i
s se afieze toi elevii cu media mai mare de 7.00
c. S se tearg din tabel elevii cu media mai mic dect 6.00.
Rezolvare:
CREATE TABLE atestat.dbf(idd N(3), nume C(20), nota1 N(2), nota2 N(2), media N(5))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati nume" to b
input"dati nota1" to c
input"dati nota2" to d
replace idd WITH a,nume WITH b,nota1 WITH c,nota2 WITH d
ENDFOR
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. S se tearg toate apartamentele care nu au balcon
c. Mrii cu 1 numrul de camere ale tuturor apartamentelor aflate pe o strad a crei nume ncepe
cu litera D.
Rezolvare:
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. S se tearg din tabel toate pariurile fcute pentru calul Speranta deoarece acesta s-a retras
din curs.
c. Afiai numele celui care are pariul cel mai mare.
Rezolvare:
CREATE TABLE pariuri.dbf(idd N(3), cal C(20), pers C(10), suma N(10))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati cal" to b
accept"dati persoana care pariaza" to c
input"dati suma" to d
replace idd WITH a,cal WITH b,pers WITH c,suma WITH d
ENDFOR
SORT to par1.dbf On suma DESCENDING
USE par1.dbf
GO TOP
DISPLAY pers
CALCULATE MAX(suma)to x
LIST pers for suma=x
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. S se penalizeze cu 10% din sum toate persoanele ce nu au pltit nc.
c. S se afieze doar persoanele care au achitat taxele.
Rezolvare:
CREATE TABLE taxe.dbf(id n(3),nume n(20),nr_pers n(2),supraf n(3),data d,suma n(9),achitat n(1))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "ID=" to a
ACCEPT "NUME=" to b
INPUT "NUMARUL=" to c
INPUT "SUPRAFATA=" to d
ACCEPT "DATA=" to e
INPUT "SUMA=" to f
INPUT "ACHITAT" to g
REPLACE id WITH a, nume with b, nr_pers WITH c, supraf WITH d,data WITH CTOD(e),suma
WITH f,achitat WITH g
ENDFOR
WAIT
CLEAR
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri).
b. tergei toate nregistrrile referitoare la o clas citit de la tastatur,
c. Actualizai tabelul astfel nct clas 12A s aib miercuri informatic n loc de fizic.
Rezolvare:
CREATE TABLE orar.dbf(idd N(3), clasa C(10), zi N(1), ora N(2), dsc C(10))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati clasa" to b
input"dati ziua" to c
input"dati ora" to d
accept"dati disciplina" to e
replace idd WITH a,clasa WITH b,zi WITH c,ora WITH d,dsc WITH e
ENDFOR
USE orar.dbf
replace dsc WITH 'informatica' FOR clasa ='12A' AND zi=3 AND dsc='fizica'
20. O firm se ocup cu comercializarea materialelor pentru construcii. Materialele sunt stocate n
depozite numerotate de la 1 la n. Pentru gestionarea activitii firmei se consider un tabel stocuri
cu urmtoarea structur:
id (de tip numeric, cmp de identificare unic)
denumire (ir de caractere cu maximum 20 de caractere)
cantitate( numr cu maximum 3 cifre)
pret_unitar (numr cu maximum 6 cifre)
depozit (numr cu maximum 3 cifre)
valoare (numr cu maximum 3 cifre)
Cerine:
a. S se creeze i s se populeze cu date tabela (minimum 10 nregistrri)
b. Calculai valoarea i introducei rezultatul, prin comand, n cmpul valoare (valoare se
determin ca fiind cantitate * pret_unitar)
c. Afisai toate produsele din depozitul 5
Rezolvare:
CREATE TABLE 20.dbf(idd N(20), den C(20),cant N(20),prtu N(20),dep N(10), valo N(20))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "Id=" to a
ACCEPT "Nume" to b
INPUT "cantitate=" to c
INPUT "Pret/unitate" to d
INPUT "Depozit=" to e
REPLACE idd WITH a, den WITH b, cant WITH c, prtu WITH d, dep WITH e
ENDFOR
LIST
WAIT
CLEAR
Cerine:
a. S se creeze si s se populeze cu date tabela (minimum 10 nregistrri).
b. S se afieze produsele care vor expira in urmtoarele 7 zile.
c. Se se afieze produsele cu preul egal cu cel mai scump produs, n ordine alfabetic.
Rezolvare:
USE produse.dbf
SORT TO prds.dbf ON pretul DESCENDING
USE prds.dbf
x=pretul
GO TOP
IF pretul=x
display den
ENDIF
24. Se consider tabela tari cu structura:
numetara (text sau ir de caractere)
capitala (text sau ir de caractere)
continent (text sau ir de caractere)
nrlocuit (de tip numeric)
suprafata (de tip numeric)
Cerine:
a. S se creeze tabela; S se populeze cu date tabela (minimum 10 nregistrri).
b. Se citete de la tastatur numele unui continent. Calculai populaia total a rilor de pe
continentul citit.
c. S se afieze rile n ordinea descresctoare a densitaii populaiei (densitatea fiind egal cu
suprafaa mprit la numrul de locuitori), la densiti egale n ordine alfabetic.
Rezolvare:
Cerine:
a.S se creeze si s se populeze cu date tabela(minimum 10 nregistrri) , cmpul sal_inc rmnnd
necompletat.
b.S se completeze n mod automat pentru toi angajaii cmpul sal_inc ca fiind
nr_ore*cost_ora.Afiai tabela rezultat.
c.Se citete de la tastatur un numr.Afiati n ordine alfabetic dup nume i prenume angajaii
care au salariul de ncadrare cel puin egal cu numrul citit.
Rezolvare:
CREATE TABLE 41.dbf(idd N(20), nume C(20),prn C(20),nro N(20),cst N(10), sal N(20))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "Id=" to a
ACCEPT "Nume" to b
ACCEPT "Prenume=" to c
INPUT "Ore=" to d
INPUT "Pret/ora=" to e
REPLACE idd WITH a, nume WITH b, prn WITH c, nro WITH d, cst WITH
ENDFOR
LIST
WAIT
CLEAR
Cerine:
a. S se creeze si s se populeze cu date tabela (minimum 10 nregistrri).
b. Se citete de la tastatur un numr. Majorai cu 10% toate salariile egale cu numrul citit, afiai
salariaii cu salariul majorat.
c. Afiai angajatul cu salariul maxim de la fiecare departament
Rezolvare:
CREATE TABLE personal.dbf(idd N(3), nume C(20), prenume C(20),dep N(3),sal N(10))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati numele" to b
accept"dati prenumele " to c
input "dati departamentul " to d
input"dati salariul" to e
replace idd WITH a,nume WITH b,prenume WITH c,dep WITH d,sal WITH e
ENDFOR
use personal.dbf
index on str(dep)+str(sal) tag depart descending
go top
y=dep
?sal
for i=1 to reccount()
if dep=y
skip 1
IF i=RECCOUNT()
?sal
endif
else
y=dep
?sal
endif
ENDFOR
Cerine:
a. S se creeze i s se populeze tabela cu minimul 10 nregistrri
b. S se afieze obiectivul, costul i data efecturii tuturor excursiilor a cror cost este cuprins ntre
150 si 500 RON i sunt programate n luna iunie.
c. S se adauge urmtoarele cmpuri: nr_locuri i pret_rezervare, ambele numerice.
Completai automat cmpurile adugate anterior astfel: cmpul nr_locuri cu valoarea 45, iar
pret_rezervare cu preul rezervrii unui autocar, tiind c valoarea cmpului cost este pentru un
singur loc.
Rezolvare:
*a)
FOR i=1 TO n
APPEND BLANK
INPUTDati id TO a
ACCEPTDati obiectiv TO b
INPUTDati cost TO c
REPLACE idd WITH a, obiectiv WITH b, cost WITH c, datap WITH CTOD(d)
ENDFOR
*b)
LIST obiectiv, cost, datap FOR cost>150 AND cost<500 AND MONTH(datap)=6
*c)
MODIFY STRUCTURE
Cerine:
a. S se creeze tabela i s se populeze cu minimum 10 nregistrri
b. Afiai denumirea, densitatea populaiei i produsul intern brut pe cap de locuitor pentru rile cu
o populaie mai mare de 200 milioane locuitori i care au produsul intern brut (pib) pe cap de
locuitor mai mare dect al Spaniei.
c. Completai automat capitala pentru Romnia.
Rezolvare:
CREATE TABLE tari.dbf(idd N(3), den C(20), suprf N(20),popul N(20),PIB N(10),cap C(20))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati denumirea tarii" to b
IF b='romania'
replace cap WITH 'bucuresti'
ELSE
accept"dati capitala" to c
eplace cap WITH c
endif
input"dati suprafata " to d
input "dati populatia " to e
input"dati PIB-UL" to f
replace idd WITH a,den WITH b, suprf WITH d,popul WITH e,PIB WITH f
ENDFOR
Rezolvare:
CREATE TABLE angajati1.dbf(idd N(3), nume C(20), pren C(20), data_nas D, salariu N(10), nr_dep
N(20))
input"dati nr de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
input"dati id " to a
accept"dati nume" to b
accept"dati prenumele" to c
accept"dati data nasterii" to d
input"dati salariu" to e
input"dati nr departament" to f
replace idd WITH a,nume WITH b,pren WITH c,data_nas WITH CTOD(d),salariu WITH e,nr_dep
WITH f
ENDFOR
calculate avg(salariu) to x
gO top
for i=1 to RECCOUNT()
if(salariu<x)
display nume
?year(date())-year(data_nas)
endif
skip 1
ENDFOR
Rezolvare:
CREATE TABLE 27.dbf(idd N(20), autor C(20),titlu C(20),an N(20),edi C(10), prt N(20), dom C(20))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "Id=" to a
ACCEPT "Autor" to b
ACCEPT "Titlu=" to c
INPUT "An=" to d
ACCEPT "Editura=" to e
INPUT "Pret=" to f
ACCEPT "Domeniu=" to g
REPLACE idd WITH a, autor WITH b, titlu WITH c, an WITH d, edi WITH e, prt WITH f, dom
WITH g
ENDFOR
LIST
WAIT
CLEAR
Rezolvare:
USE mat.dbf
LIST den for pu> 3000 AND pu < 10000
Rezolvare:
40. Se consider tabela camere cu structura:
nr_camera (numeric, cmp de identificare unic)
nr_paturi (numeric)
pret_camera (numeric)
etaj (numeric)
TV (numeric sau logic)
Internet (numeric sau logic)
Rezolvare:
CREATE TABLE 41.dbf(nrc N(20), nrp N(20),prc N(20),et N(20),TV N(10), Innt N(20))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "Nrcam=" to a
ACCEPT "Nrpat=" to b
INPUT "Pret=" to c
INPUT "Et=" to d
INPUT "TV?" to e
INPUT "INT?" to f
REPLACE nrc WITH a, nrp WITH b, prc WITH c, et WITH d, TV WITH e, Innt WITH f
ENDFOR
LIST
WAIT
CLEAR
USE 41.dbf
SORT TO data3.dbf FOR nrpat=2,TV=0 ON prc/DC
GO TOP
DISPLAY
GO BOTTOM
DISPLAY
41. Se consider tabela concurs cu structura:
id (numeric, cmp de identificare unic)
nume (text sau ir de caractere)
punctaj1 (numeric, cel mult 3 cifre)
punctaj2 (numeric, cel mult 3 cifre)
total (numeric, cel mult 3 cifre)
calificativ (text sau ir de caractere)
Cerine:
a. S se creeze tabela i s se completeze (numai primele 4 cmpuri) cu minimum 10 nregistrri
b. S se calculeze pentru fiecare concurent totalul ca fiind suma dintre punctaj1 i punctaj2 i s se
afieze, descresctor dup total, numrul concurenilor care au obinut punctajul total peste 100
c. S se completeze cmpul calificativ astfel: primii 5 clasai n ordinea descresctoare a punctajului
vor primi foarte bine (dar numai dac au peste 50 la total), urmtorii care au peste 50 de puncte vor
primi bine, iar restul satisfacator.
Rezolvare:
CREATE TABLE 41.dbf(idd N(20), nume C(20),p1 N(20),p2 N(20),tot N(10), cal C(20))
INPUT "Numarul de inregistrari" to n
FOR i=1 TO n
APPEND BLANK
INPUT "ID=" to a
ACCEPT "NUME=" to b
INPUT "P1=" to c
INPUT "P2=" to d
REPLACE idd WITH a, nume WITH b, p1 WITH c, p2 WITH d
ENDFOR
WAIT
CLEAR
USE 41.dbf
FOR i=1 TO RECCOUNT()
IF i<6
IF tot>50
replace cal WITH "FB"
ELSE
replace cal WITH "S"
ENDIF
ELSE
IF tot>50
replace cal WITH "B"
ELSE
replace cal WITH "S"
ENDIF
ENDIF
ENDFOR
LIST
WAIT