Реферат: Общие сведения о языке программирования Qbasic

Общие сведения об языке программирования

 Qbasic

          ЯзыкQBASIC (Beginner's All-purpose Instruction Code)разработан Джоном Кимини и Томасом Куртцем в Дартмутском колледже, США, всередине 1960 г.

          QBASICзанимает  особое место среди всех языков высокого уровня. С самого начала онзадумывался как универсальный язык для начинающих, и средства программированияна QBASIC до сих пор включаются в комплект поставки ПК,- как обязательный  элемент технологии.

          Вот некоторыйдостоинства QBASIC (с точки зрения массовогопользователя):

nпростота синтаксиса;

nпростота организации данных и управляющих структур;

nбольшое число встроенных команд и функций, позволяющих безтруда выполнять такие операции, как управление текстовым и графическим экраном,обработка символьных строк и т.п.)

          Особым достоинством QBASIC следует считать возможность работы в режиме интерпретации,который резко упрощает процесс отладки программ: исполнение почти каждойкоманды можно проверить сразу после написания(Shift +F5).

 

АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ

 

      Программа на языкеБейсик записывается в виде последовательности символов, к числу которыхотносятся латинские и русские буквы, арабские цифры, знаки препинания (,;: " ' ?), знаки операций (* / — + < > <= >= = <> .), специальные символы (% &! # $ ).

     Для обозначения исходныхданных и результатов вычислений употребляются переменные.

     Последовательность латинскихбукв и цифр, начинающаяся с буквы, называется   идентификатором илиименем переменной.

     Числа в программезаписываются в десятичной системе, вместо запятой  в десятичных дробях пишетсяточка: 0, — 17, 0.25, — 34.85.

     Переменные и числа -  это простейшие частные случаи выражения. Более сложные выражениястроятся из чисел и переменных с помощью знаков сложения, вычитания, умножения,деления,  возведения в степень.  +, -, *, /, ^.

    При вычислении значенийвыражений действуют обычные правила старшинства  операций:

1) возведение в степень — ^

2) умножение, деление *, /

3)сложение, вычитание+, -

    Действия варифметических выражениях выполняют слева направо в зависимостиотих приоритета. Для того, чтобы изменить естественный порядок действийиспользуются круглые скобки. Выражения в круглых скобках выполняются в первуюочередь.

     В выражении могутбыть использованы следующие встроенные функции:

      ABS ( х)  — модульх         ½ х ½

      SQR ( х)  — кореньквадратный из х   ( Ö`х ).

      INT ( х ) — целая часть х

      SIN  ( х) — синус х(аргументом служит радианная мера угла)

      COS ( х ) — косинус х

      TAN ( x )- тангенс х

      ATN ( x )- арктангенс х

      LOG ( x ) - натуральный логарифм х

      EXP ( x )- экспонента х

      SGN (x) — определениезнака числа х

         

          Например. Записатьпо правилам Бейсика математические выражения

1) />     X2 +2X-5.12                        (X^2+2*X-5.12)/(X^2+12.51)

            X2+12.51

/>2)          COS(X) — SIN(X)                     (COS(X)-SIN(X))/(ABS(COS(X)+SIN(X)))

          |COS(X) + SIN(X)|

Упражнения

 

1. Какие из следующихпоследовательностей символов являются идентификаторами, а какие нет.

      

а) Х                б)Х1             в) Х¢             г) Х1Х2         д) AB          е) ABCD      

ж) SIN            з) SIN ( Х )  и) А-1      к) 2А              л) MAX15

2. Записать по правиламБейсика следующие выражения:

/> /> /> /> />

     Х2 + Y2

1+ Х2 — Y2

          2      

     

    

  <td/>

                    

    -  2,5    

  />  
    />   а)                              б) 1+ Х + Х2    в)  1+½Х½+½1+Х½   г) А+В   />                                              2                                                             C+D  

                                                                                                                                                                                                   

 

  + 30,2

 

              

     C+D

   

  д)     A+B -1,7                    е)  __1,2-9,8Х____                 ж)  Ö Х2 + Y2  +100    

/>                                                1-Y(54,264-Х)                       (2Х+50,2)   

            E+F+0,5                

                                                                                                                                                                                                                                                                                                                                                 

         

 3. Переписатьследующие выражения, записанные по правилам Бейсика, в традиционной математическойформе:

 

а) А+B/ (C+D) — ( A+B) /C+D                б) A*B/ (C+D) — (C — D)/ B*(A+B)

в) 1+SQR (COS (Х+Y)/2)                       г) 2.56 + АВS ( Х^2-Y^6)

д) INT (Х*5.234 — А*(Х+Y))

ОПЕРАТОРЫ ВВОДА-ВЫВОДА

 

I Оператор присваивания     имеет общий вид:

 

                                     |     имя другой переменной                                                                             

      имя переменной=í    арифметические выражения                                                  

                                     ç     число

                                                                                           

          В результате выполненияоператора присваивания переменной, стоящей слева от знака равенстваприсваивается значение другой переменной или значение арифметического выраженияили численное значение. Для того, чтобы оператор присваивания мог бытьвыполним, необходимо, чтобы все переменные в выражении имели некоторые значения, были заданы выше.

 ПРИМЕРЫ                1.А=0          2. С=2             3. А=2  :  В=3

                                                              В=С                С= (А+В)^ 2/5

УПРАЖНЕНИЯ

1. Какие из следующихпоследовательностей символов являются операторами присваивания:

 

 а) А=В             б)А*Х+B=C      в) Z=Z+1       д)  Y=Y      e)  — Y=Y

2. Задать в виде оператораприсваивания следующие действия:

 

а) переменной Z присвоитьзначение, равное полусумме значений переменных

  Х и Y.

б) удвоить значение переменной А,

в) значение переменной Хувеличить на 0.1,

г) изменить знак значенияпеременной Y.

3.Задать с помощьюоператоров присваивания следующие действия:

а) переменной А присвоитьзначение разности, а переменной В-полусуммы значений переменных Х и Y.

б) переменой А присвоить значениеудвоенного произведения значений переменных Х и Y, а переменной В значение 0.

 

4) Даны Х, Y      получить    ½Х½-½Y ½           X=2,57    Y=-5,379

                                                 1+½Х*Y½

 

Операторы  ввода-вывода

 

Оператор ввода с клавиатуры:

 

 INPUT[«текст»;] X1, [X2, X3… XN]

[ ] — обозначают,что параметры, стоящие в них не обязательны;

X1, X2,… XN — имена переменных или идентификаторы.

         Врезультате выполнения этого оператора на экране появится текст, а переменным X1,X2,… XN  будутзаданы значения с клавиатуры.

Операторы блока данных

READ X1,X2,X3,… XN      где X1,X2,..XN — это имена переменных

DATA C1, C2, C3,… CN        C1, C2,… CN — это значения

         В результатевыполнения этих операторов переменная X1 получитзначение C1,  X2 приметзначение C2...

Замечание!ОператорDATAможетстоять в любом месте программы. Считывать данные из хранилища DATAможно с помощью нескольких операторов READ.

         ОператорRESTORE возвращает считывание данных на начало.

Оператор вывода на экран

PRINT S1[ ;S2; S3 ...]

где  S1, S2… SN — списки

Списки это :

1) имя переменной, значение которой необходимо вывести на печать;

2) арифметическое выражение, значение которого необходимо вывести напечать;

3) текст, заключенный в кавычки.

         Разделителеммежду списками может быть:

1), — списки отделяются друг от друга шагом табуляции, равным 8пробелам;

2); — списки печатаются вплотную друг к другу.

         Дляуправления выводом используют специальный оператор:

                            LOCATE X,Y

где  X  — номер строки экрана 1<=X<=24, Y — номер столбца экрана1<=Y<= 80.

Этот операторуказывает место для печати.

Задачи

Написать программу для вычисленияфункции:

1) Y=/>,/>где Х=/>.  Ответ вывести в  виде:

 ответ=Yпри Х=X                                     

2) Y=/>,     где       А=- 5.25,       В=/>,     С=/>

Ответ вывести в виде: Y=Y  

пропуск 2 строк

А=АВ=ВС=С

3) Y=/>,     где В=Sin/>, Х любое

Ответ вывести ввиде:             

Y=Y

пропуск 2 строк

 Х=Х

4) Y/>   где Х= (723,3/200,2)2 ,  Z=(53.2/41.3)3

 Ответ вывести в виде:

 Y=Y

 пропуск 2 строк

/>/>/> X=X        Z=Z

5)Y=/> ,  где X=Sin2 |Z|+0.5Z ;  A=2CosZ+1/(SinZ+2), гдеZ любое

Ответ вывести в виде:

Y=Y

пропуск строки

/>X=X A=A

6)Y=Cos/>, Z=Sin />  ,X*/>

/>/>/>Ответвывести в виде Y=Y        Z=Z  в10-ой позиции 12-ой строки.

7)Даны действительные числа Х, У.Не пользуясь никакими операциями, кроме умножения, сложения и вычитания,вычислить за минимальное количество операций:

а)3Х2У2-2ХУ2-7Х2У-4У2+15ХУ+2Х2-3Х+10У+6

б)1-2Х+3Х2-4Х3             в)1+2Х+3Х2+4Х3             г)2Х4-3Х2+4Х2-5Х+6

Операторы  перехода

          Операторы условногоперехода реализуют на языке программирования алгоритмическую конструкциюветвления.

          Ветвление — это такаяформа организации действий, при которой выполнение или иного действия зависитот выполнения или невыполнение некоторого условия.

Условие — этологическое выражение, содержащее знаки сравнения   и логические операции.(см.табл.)

знаки сравнения

логические операции

= равно = AND логическое «и» (пересечение) < меньше <  OR логическое «или» (объединение) > больше >  NOT «не» (отрицание) <=меньше или равно <= >=больше или равно >= <> не равно <> 

         

          Таблица действия логических функций (таблицаистинности), где a и b-логические выражения.

A B NOT a NOT b a AND b a OR b TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE FALSE FALSE

          Пример записи логическоговыражения: a + b > c AND d <> 8 .

          Логическаяоперация NOT (отрицание) выполняется над простымлогическим выражением:           NOT ( a> b )

Логическоевыражение принимает одно из двух значений: TRUE(истина) и FALSE (ложь). Эти выражения применяются воператорах ветвления и цикла.

          Существующий приоритетвыполнения операций поддерживается и здесь:

сначала выполняются операции вскобках, затем логическое умножение, логическое сложение

Примеры записей логических выражений:

математическая запись запись на языке Бейсик ( X>0 ) и (Y<0 ) ( X>0 ) AND (Y<0 ) -2<= X <=2 (X>=-2 ) AND (Y<= 2 ) X<0 и X>10 ( X<0 ) OR (X>10 )

Принят следующий приоритетлогических и арифметических операций:

n операциив скобках;

n операцияNOT ;

n операцииAND, /, * ;

n операции OR, +, — ;

n операцииотношения.

          Упражнения

1. Вычислить значение логического выражения

а) Х2 -У2<sup/> <=12 при Х=0 и У=-1          б) NOT ((X*Y) OR (Y >X) при X=4, Y=1

2. Написать логические выражения, которые имеют значение истинна лишьпри выполнении указанных условий:

а)  X>0 иY>0                                      Y не является MAX (X, Y, Z)

б) неверно, чтоX>0                            X, Y, Z равнымежду собой

в) 2< X <20                                        точка с координатами X, Y принадлежит 1-                                                           

                                                           ой четверти

Операторыперехода разделяются на две группы:

операторы безусловного перехода иоператоры условного перехода.

Оператор  безусловного перехода.

          Он служит для перехода из одной строки программы кдругой, помеченной номером или меткой.

          Общий вид оператора:                  GOTO N

где  N — номер строки или меткиоператора, на который происходит переход в программе.

Примеры:

1.    X=3                                        2.     GOTO   W

       GOTO 7                                             .…

      Y=2*X                                        W   PRINT «решениеполучено»

    7 Z=5*X

Операторы условного перехода

Существуют две формы ветвления: полная и неполная.

/> /> /> /> /> /> /> /> /> /> <td/> /> /> /> <td/>

Полная форма ветвления

  />

неполная форма ветвления

 

          Соответственно существуют и два вида операторов:полной и неполной альтернативы.

I.   Полная альтернатива(предусмотрены команды в ветви «ДА» и в ветви «НЕТ»).

1) Линейная форма записи (оператор записывается в однойстроке)

                   Условиевыполняется  «ДА»

/>


 

   IF  условие THEN блок операторов 1 ELSE блокоператоров 2

/>


                             Условиене выполняется «НЕТ»

Работа оператора: в зависимостиот того выполняется или не выполняется условие (условие — логическоевыражение, которое может содержать знаки сравнения и логические операции).Если  условие истинно, то выполняется блок операторов 1, если условие ложно, товыполняется блок операторов 2.

ПРИМЕР:  IFA=1 THEN PRINT «ДА» ELSE PRINT «НЕТ»

                   PRINT «КОНЕЦ»

Здесь операторы работают следующимобразом:

nесли условие А=1 «ИСТИННО», то выполняются операторы PRINT «ДА» и PRINT «КОНЕЦ»;

nесли условие А=1 «ЛОЖНО», то выполняются операторы PRINT«НЕТ» и PRINT «КОНЕЦ».

2) Блочная форма записи:

IF условие THEN                                 ПРИМЕР:

          блок операторов                       CLS: INPUT a

          ветви «ДА»                                 IF a=1 THEN

ELSE                                                        PRINT «работает ветвь ДА  „

          блок операторов                            PRINT a

          ветви “НЕТ»                              ELSE

ENDIF                                                      PRINT «работаетветвь НЕТ»

                                                                  PRINT a

                                                             END IF

II.Условный оператор неполной альтернативы:

IF условиеTHEN блок операторов

Примеры решения задач.

Пример 1.Определитьнаибольшее из двух чисел Х и У, введенных клавиатуры.

CLS: INPUT" ";X, Y

IF X > Y THEN

            PRINT «НАИБОЛЬШЕЕ ЧИСЛО X=»; X

ELSE

            PRINT «НАИБОЛЬШЕЕ ЧИСЛОY=»;Y

END IF

END

Пример 2. ВычислитеФункцию для любого значения Х.

/>             X2 +4X-7 , X<=-2      CLS: INPUT «введитеX»;X

/>  Y=<                                           IF X<=-2 THEN

              X2-3X+12, X>2                  Y=X^2+4*X-7

                                                   ELSE

                                                           Y=X^2-3*X+12

                                                   END IF

                                                    PRINT«ФУНКЦИЯ =»; У;" при Х="; Х

                                                   END

Пример 3. Вычислитефункцию У=3Х2 -5Х+12 на отрезке (-3,3) с шагом 1.

CLS: PRINT«Y», «X»

X=-3

4 Y=3*X^2-5*X+12

PRINT Y,X

X=X+1

IF X<3 THENGOTO 4

END

Пример4. Вычислитесумму целых чисел от 10 до 20

S =10+11+12+...+20

CLS: S=0: X=10

5 S=S+X

X=X+1

IF X<=20 THENGOTO 5

PRINT «сумма= »;S

END

Пример 5. Вычислитепроизведение нечетных чисел от 15 до 30 

Р= 15*17*19*...*29

CLS:P=1:X=15

7 P=P*X

X=X+2

IF X<30 THENGOTO 7

PRINT «произведение= »;P

END

Циклы.

          В языке QBASIC предусмотрено два основных способа организации циклов:

nповторение блока команд заданное количество (число) раз (цикл сосчетчиком);

n циклическое повторениеблока команд, пока выполняется (или не выполняется) некоторое условие.

Циклсо счетчиком (FOR… NEXT) ДЛЯ… СЛЕДУЮЩИЙ

          Оператор циклареализует алгоритмическую конструкцию, в которой определенные действияповторяются многократно.

Общий вид оператора цикла сосчетчиком:

FOR  K=K1   TO  K2 STEP  K3   — заголовок цикла

      -   тело цикла   -

NEXTK                                          — конец цикла

          Здесь FOR - имя оператора (переводится «для»); К — переменная (обычно целоготипа), называемая переменная управления циклом ; К1, К2, К3 — начальное,конечное значения и шаг изменения величины К соответственно, могут бытьпредставлены любыми арифметическими выражениями; ТО, SТЕР- переводится — «до», «шаг»; тело цикла — любые операторыязыка Бейсик;   NEXT -  оператор (переводится«следующий»).

          Совместная работаоператоров и  определяется схемой:

/>


где

/>                                       K <K2,  если K3 > 0

/>  < условие  >  =      <

                                       K >K2, если  K3 < 0

Иначе говоря, операторы FOR и NEXT обеспечивают изменениезначения К от К1 до К2 с шагом К3 и выполнение оператора (операторов),заключенных между FOR и NEXT,при каждом значении К.

Ограничения:

1. Изменять значение величин К1, К2, К3 в процессе выполненияоператоров FOR и NEXT нерекомендуется.

2. Вход в цикл, минуя оператор FOR, в Бейсике запрещен.

         

Примеры решениязадач

 

Пример 1. Выведите наэкран в столбик целые числа от 1 до 10.

CLS

FOR J=1 TO 10STEP 1

PRINT J

NEXT J

END

Пример 2. Вычислите суммуцелых чисел от 1 до 10

CLS: S=0

FOR I=1 TO 10STEP 1

S=S+I

NEXT I

PRINT ""; S

END

Пример 3. Вычислитезначение функции   y=2X2-3X+5 на отрезке(-3, 3) с шагом 1,5

CLS: PRINT«Y»; «X»

FOR X=-3 TO 3STEP 1.5

Y=2*X^2-3*X+5

PRINT Y,X

NEXT X

END

Пример 4. Вычислите сумму S=  2+4+...+2 N, если  N  вводится с клавиатуры    CLS: S=0

INPUT «введите  « N»;  N

FOR  I = 1 TO  N

S=S + 2 *N

NEXT I

PRINT «сумма = «; S

END

Пример 5  Выведите слово  «IBM» 10 раз, чтобы получилась  диагональ

 CLS

 FOR K =5  TO 15

 LOCATE  K, K

 PRINT  « IBM»           

 NEXT  K

 END

Цикл WHILE...  WEND (ПОКА...  КОНЕЦ)

 

          КонструкцияWHILE...  WEND (ПОКА… КОНЕЦ) позволяет выполнять блоккоманд до тех пор, пока значение выражения, заданного в WHILE- «Истина».

Общий вид оператора

 

WHILEлогическое выражение

— блок команд–

WEND

          Работа операторов можетопределяться следующей схемой:

/> /> /> /> /> /> /> /> /> />

/>                                                                             НЕТ 

/>/>/>                  

/> /> /> /> /> /> /> <td/> /> />

/>                                                         

                                                          ДА

/> /> /> /> /> /> /> /> /> /> /> /> /> /> />

          После завершения циклауправление передается команде, следующей за WEND.

          Если при проверкеусловия окажется, что значение логического выражения — «Ложь», блоккоманд не будет выполнен ни разу.

          С помощью WHILE...  WEND можно организовать вложенные циклы — каждый сосвоими WHILE...  WEND.

Ограничение: из этойконструкции нельзя выйти «досрочно», т.е. до завершения работыоператора.

Примеры решения задач.

CLS: I=1

WHILE I < 5

  PRINT «I=»; I;

  I=I+1

WEND

          На экране будет :   I=1 I=2 I=3I=4

Задачи по теме«Условный оператор» и «Оператор цикла»

 

1.Найтинаибольшее из чисел (х+у)/2 и (х+у/2)для любых чисел х и у.

2. Вычислить значения функций для любых Х и Z

а)Y=(X-15)/(x-6) ;   б) Y= 2X-5/(7Z-4X);

/>               X2+5X-14,  если  X<-2

с)  Y= <

/>              3X2-7X  ,    если X>=-2

/>г)           5X2+4X-21 ,  если X < -7

     Y=<

/>               2X2-3X   ,   еслиX>=-7

/>д)           X+Z, если X<10 и Z>5

      Y=    X*Zв остальных случаях

3. Заданы длины сторон треугольника — А, В, С, Определить, являетсяли треугольник равнобедренным.

4. Составить программу, выводящую на экранпервые десять натуральных чисел.

5. Составить программу, печатающую таблицуквадратов первых десяти целых чисел в центре чистого экрана.

6. Вычислить значения функции

а)  Y= 5*X2-4X+11      на отрезке (-5,5) с шагом 1,5;

/>б)            X2-2*X+3, если X<0

/>         Y= <                                  на отрезке  (-7, 7) сшагом 1;

                 X-18+12,  если X>=0

/>в)              SIN(X),   если X<=0

        Y= <  SIN(X)+COS(X), если 0<X<3

/>                 COS(X),  если X>=3;

на отрезке (-6, 6) с шагом 0,5.

7. Выведите в столбик ряд натуральных чисел от 1 до 10.

8. Выведите на экран в столбик четные числаот 1 до 20.

9. Выведите на экран в строку нечетные числаот 15 до 20.

10. Найдите:

а) сумму целых чисел от 10 до 20;

б) произведение целых чисел от 20до 20;

в) сумму нечетных чисел от 20 до40;

г)произведение целых чисел от 20до 40;

д) сумму четных чисел от 1 до 20;

е) произведение четных чисел от 1до 20.

11. Выведите на экран 10 раз слово «PENTIUM»по диагонали.

12. Дна последовательность чисел, введенная склавиатуры. Найдите сумму отрицательных членов этой последовательности ипроизведение положительных, количество отрицательных и положительных.

13. Составьте программу, выводящую на экран:

а) движение "*" попервой строке экрана;

б) движение "*" попоследнему столбцу экрана;

в) движение "*" подиагонали.

14. Вычислите суммы, если N  вводится склавиатуры:

/>/>/>/>/>/>а)   1        1             1                  б)    1        1                   1

     15  +   25   +… + N5 ;                    (3)2  +(5)2  +… + (2N+1)2      ;

15. Вычислите произведения, если А и вводятся с клавиатуры:

/>/>/>а)     1          1           1                  ;                

     (1+12)*(1+22)...(1+N2)

б) A*(A-N)*(A-2N)...(A-N*N);       в)    2*4*6*...*2*N .

16. Определить является ли произвольное число кратным:

а) двум;           б)трем;          в) пяти.

17. Выведите на экран простые числа в диапазоне

а)   от 1 до 20  ;       б)  от20 до 100.

18. Определить является произвольное число простым.

Строковые переменные

 

          В языке Бейсиксуществует возможность обработки не только числовых, но текстовых, символьныхданных. Для этого используют символьные (или строковые, литерные) константы,переменные и выражения.

          Символьная константа — это строка символов, заключенная в кавычки. Значением константы являетсяпоследовательность составляющих ее символов не считая кавычек. Два идущихподряд знака кавычек задают пустую символьную строку, не содержащую ни одногосимвола.

          У символьной переменнойесть имя, которое заканчивается знаком $, и значение ввиде строки символов.

          Для строк определенаоперация сравнения: строки считаются равными, если их длины равны и коды всехсимволов попарно совпадают. Если одна из строк совпадает с началом другой (нокороче ее), то она меньше. В остальных случаях все решает код первогонесовпадающего символа — меньше та строка, у которой он меньше.

          Операции,производимые над строковыми переменными

а) присвоение текстовойконстанты:

                      A$=«СТРОКА СИМВОЛОВ»

                      T$=""   - очистка строки

б) печать значений строковыхпеременных:

                       PRINTA$, T$

в) склейка двух строк:

                                         T$=A$+B$

                                         P$=«СЛОВО: „+P$

                                         C$=“СКЛЕЙКА»+" "+«СТРОК»

г) ввод значений строковых переменныхс клавиатуры:

                                     INPUT A$, B$

 - при вводе строку можно незаключать в кавычки.

          Основные функцииработы с символьными переменными:

   VAL(A$) — перевод строки в число;

CHR$(L) — выдает символ по коду данного числа;

ASC(S$) — выдает код первого символа строки

   SRT$(K)- преобразует число в символьную строку, которая является записью в видепоследовательности десятичных цифр;

   LEN(F$) — выдает длину символьного выражения;

   LEFT$(F$, N) — вырезает заданноеколичество символов слева;

   RIGHT$ (F$, N) — вырезает заданное количество символов справа;

MID$(F$, N1, N2) — вырезка из строки заданногоколичества символов с заданного символа

 

Примеры решениязадач.

 

Пример 1. Подсчитать,сколько раз среди символов заданной строки встречается буква «F».

CLS

INPUT «Введитестроку — »;S$

K=0

FOR I=1 TOLEN(S$)

IF MID$(S$, I,1)=«F» THEN K=K+1

NEXT I

PRINT «Буква F встретилась »;K;" раз(а) "

END

Пример 2. Составитьпрограмму, которая печатает заданное слово задом наперед.

CLS

INPUT «Введитеслово — »;S$

FOR I=LEN(S$) TO1 STEP -1

PRINT MID$(S$,I, 1);

NEXT I

END

Пример 3. Выдать номерпозиции заданной строки, в которой впервые встречается буква «в».Если такой буквы в строке нет, выдать сообщение об этом.

CLS: INPUT«Введите строку — »;S$

K=0

FOR I=1 TOLEN(S$)

IF MID$(S$, I,1)=«в» THEN 80

NEXT I

PRINT «Буквыв нет в заданной строке»

GOTO 90

80 PRINT «Перваябуква в встретилась в »; I; " -йпозиции"

90 END

 

Задачи на работу ссимвольными переменными

 

1.  Подсчитатьсколько раз среди символов заданной строки встречается буква «F».

2.  Составитьпрограмму, которая печатает заданное слово задом наперед.

3.  Подсчитатьколичество цифр в заданной строке.

4.  Подсчитатьколичество слогов в слове.

5.  Проверить,является ли заданное слово палиндромом  («перевертышем», как слова КАЗАК, ШАЛАШи т.д.)

6.  Срединатуральных чисел от 1 до n найти все такие, записькоторых совпадает с последними цифрами записи их квадратов (5 и 25, 6 и 36, 25и 625 и т.д.)

7.  Выдатьномер позиции заданной строки, в которой впервые встречается буква «в». Еслитакой буквы в строке нет, выдать сообщение об этом.

8.  Выдатьномер позиции заданной строки, в которой в пятый раз встречается буква «W». Если такой позиции нет, выдать сообщение об этом.

9.  Взаданной строке подсчитать отдельно количество символов «а» и «b».

10.Из заданной строки получить новую, заменив все запятые наточки. Распечатать полученную строку.

11.Из заданной строки получить новую, выбросив из нее всеточки. Распечатать полученную строку.

12.Из заданной строки получить новую, удалив все звездочки(«*») и повторив каждый символ, отличный от звездочки. Распечатать полученную.строку.

13.Из заданной  строки получить новую, заменив в ней всесимволы после первой звездочки («*») знаком «-«  (если в строке нет звездочек,оставить ее без изменения). Распечатать полученную строку.

14.Из заданной строки получить новую, удалив из нее вседвоеточия, предшествующие первой точке, и заменив в ней все знаки «+» послепервой точки знаком ² — ² (если в строке нет точек, добавьтеодну в конце). Распечатать полученную строку.

15.В заданной строке поменять местами первую букву ² а ²и первую букву       ² b ².Если хотя бы одной из них нет, напечатать сообщение, иначе распечатать полученнуюстроку.

16.Определить наименьшую длину слова в заданной строке (считать,что слова отделяются друг от друга пробелами).

17.Из заданной строки выделить подстроку длиной 5 знаков (либодо конца строки, если осталось меньше), которая начинается с первойвстретившейся в строке буквы ² f ².Распечатать эту подстроку или сообщение о том, что ее нет.

18.В заданной строке первый символ- заглавная латинская буква.Если это       ² К ²,  ² О ²,   ² D ², заменить еесоответствующей строчной буквой. Распечатать полученную строку.

19.В заданной строке подсчитать количество букв латинскогоалфавита.

20.Из заданной строки получить новую, удалив все символы, неявляющиеся буквами латинского алфавита.

21.В заданной строке преобразовать все заглавные буквылатинского алфавита в строчные, а строчные в заглавные.

22.Из заданной строки получить новую, удалив все группы букв ² abcd ².

23.Из заданной строки получить новую, заметив все группы букв ² abc ² на² abcd ².

24.Подсчитать, сколько слов в заданной строке оканчиваетсябуквой ² я ², если известно, что после слова обязательно стоит пробел,либо точка.

25.Даны натуральное число n, символы s1,...sn.Преобразовать последовательность s1,...sn,, заменив в ней:

    а) все восклицательныезнаки точками;

    б) каждую точку многоточием(т.е. тремя точками);

    в) каждую из групп стоящихрядом точек одной точкой;

    г) каждую из групп стоящихрядом точек многоточием (т.е. тремя точками).

26. Даны натуральное число n, символы s1,...sn.Выяснить, имеются ли в последовательности s1,...sn такие члены последовательности sj,sj+1, что sj — это запятая, а sj+1 — тире.

27. Даны натуральное число n, символы s1,...sn.Получить первое натуральное j, для которого каждый изсимволов sj и sj+1совпадает с буквой а. Если такой пары символов в последовательности s1,...sn<sub/> нет, то ответом должно быть число 0.

 

Массивы

          В математике принятосходные по характеру величины обозначать одним общим именем, а различать их поиндексу. Например, члены какой- либо последовательности можно обозначитьследующим образом:

/>/>                           А1, А2, .... , Аn

    имя                                            индекс

Аналогично поступают в Бейсике

/>/>                          А(1)    А(2)   ...    А(N)

      имямассива                         индекс в круглых скобках

          Массив — этосовокупность переменных обозначенных общим  именем и различаемых с помощью индексов,которые записываются в круглых скобках после имени массива.

      DIM            Английскоеслово (дименшн) означает массив

          Оператор DIM используется для того, чтобы указать общее количествопеременных в массиве. Это необходимо для рационального распределения памятикомпьютера.

         

Объявление массива

/>          DIM A(7)          количествопеременных в массиве (элементов           

/>                                   в массиве)

Общееимя                          Исполнение оператора DIM  заключается

элементов массива          в том,что в памяти компьютера образуется

                                        массивпеременных.

       А(0)  А(1) А(2)  А(3) А(4)  А(5)  А(6)  А(7) 

А

 Ограничение:массив нельзя объявлять дважды, поэтому следует объявлять массивы вначальных строках программы и не возвращаться в эти строки с помощью оператора GOTO.

          Каждый элемент массиваобладает:

1) />именем                 Х(5)

2) />/>индексом                                       место в памяти, отведенное

3) />значением               3,2                  под данный элемент массива

 

Ввод элементов массива может осуществлятьсянесколькими способами:

1) DIM A (5)

    A(0)=4:  A(I)=-2.5:  (3)=10:  A(4)=0: A(5)=6:  A(2)=3

   Этот способ ввода удобен, когдамассив небольшой

2)Ввод элементов массива с клавиатуры

    DIM А(9)

    FOR I=0 TO 9

    INPUT A(I)

    NEXT I

3) DIM B (6)

    DATA 0, -2, 1, 5, 8, 5, 6. 26

    FOR N=0 TO 6

    READ B (N)

    NEXT N

Вывод элементов массива можноосуществлять в строку и в столбик:

1) DIM A(3)

     PRINT A(0), A(I), A(2), A(3)

   Этот способ вывода удобен, когдамассив небольшой

2) DIM A(10)

    FOR I=0 TO 9

    PRINT A(I)

    NEXT I

Основные приемыпри решении задач с применением массивов

Пример 1. Дан массив из 10 элементов. Найти суммуэлементов массива

    DIM A (9)

    S=0

    FOR N=0 TO 9

    S=S+A(N)

    NEXT N

    PRINT ²сумма=²;S

Пример 2. Найти минимальный элемент массива и индексэтого минимального  элемента

    DIM L (9)

    MIN=L(0): K=0

    FOR I=1 TO 9

    IF MIN>L(I) THEN MIN=L(I):K=I

    NEXT I

    PRINT ²минимум²; MIN

Пример 3. Даны 2 массива А(9), В(9). Получить массив,каждый элемент которого равен сумме соответствующих элементов данных массивов

    DIM A(9), B(9), C(9)

    FOR I=0 TO 9

    C(I)=A(I)+B(I): PRINT C(I)

    NEXT I

СОРТИРОВКА  МАССИВА ПОВОЗРАСТАНИЮ

1 СПОСОБ (метод пузырька)              2 СПОСОБ (метод сортировки         DIM A(9)                                                                                    простым способом).

    CLS                                                                      DIM  A(9)

    FOR  i = 0TO 9                                                    PRINT “Введите10 элементов”

INPUT A (i)                                                           FOR i=0 TO 9

NEXT i                                                                  INPUTA(i)

FOR  i = 0 TO9                                                     NEXT i

FOR  y = 9 TO i STEP — 1                                      FOR i=0 TO 9

    IF A (y) >A(y-1) THEN GOTO20                        P=A(i): K=i

m = A(y)                                                               FOR y=i+1 TO9

A (y) = A (y-1): A (y-1) =m                                IF A(y)>P THEN GOTO 50

20 NEXTy                                                                P=A(y):K=y

 NEXTi                                                            50 NEXT y

 FOR i=0 TO9                                                       A(K)=A(i):A(i)=P

 PRINT А(i)                                             NEXT i

     NEXTi                                                    PRINT    “Отсортированныеэлементы”

                                                                     FOR i=0 TO 9

                                                                     PRINT A(i)

                                                                     NEXT i

                                                                     END

                                                                               

3 способ (методпростого включения)

DIM A  (10),  В(9)

PRINT “Введите 10 элементов”

FOR i=0 TO 9

INPUT B (i)

NEXT i

FOR i=1 TO 10

A(i)=B(i-1)

NEXT i

FOR i=1 TO 10

P=A(I):Y=I-1

40IF  P<A(Y) AND Y>0 THEN  A(Y+1)=A(Y):Y=Y-1:GOTO40

A(Y+1)=P

NEXT i

PRINT “Отсортированные элементы”

FOR i=1 TO 10

PRINT A (i)

NEXT i

END

Задачи на использование цикла при обработке массивов.

1.  Вывестиположительные элементы массива Х(k), затемотрицательные элементы массива У(m) и количествовыведенных чисел.

2.  Даны k  и массив X(k). Найти сумму.

    (X1-P)2+(X2-P)2+...+(Xk-P)2, где  Р=Х1+Х2+...+Хk)/k.

3.  Даныm и массив Х   ( m ). Найтипроизведение.

    (2+Х21)*(2+Х22)*...*(2+Х2m).

4. Найти номер элемента массиваХ(k), ближайшего к С, где

    С=(Х1+Х2+...+Хk)/k

5.  ДаныС, m и массив Т(m). Найти числоэлементов массива Т, меньших С, а для элементов, больших С, найти их среднееарифметическое.

6.  Длямассива Т(m) найти число элементов, больших предыдущегоэлемента, а для тех, которые меньше, найти их среднее арифметическое.

7.  Найтиномер наименьшего положительного элемента массива Х(m).

8.  Длямассива Х(m) напечатать сумму, произведение и номераположительных элементов после последнего нулевого элемента.

9.  Даныk  и массив Т(k). Найти сумму иколичество элементов в массиве Т после первого нулевого элемента.

10. Даны m и массив А (m). Напечатать суммуотрицательных элементов массива А после первого нулевого элемента.

11. Даны m, координаты ХА, УА пункта А и вмассиве К из 2m чисел координаты Х1, У1,Х2, У2,..., Хm,Ym пунктов В1, В2,..., Вm. Вывести номер и координаты пункта В наиболееудаленного от пункта А.

12. Найти общееколичество нулевых элементов в массивах Х(m), У(k).

13. Образовать и вывестимассив Т из неотрицательных элементов массива  Х(m).Напечатать число элементов в массиве Т.

14. Вывести четные позначению среди положительных элементов массива Х(m),начиная с первого положительного элемента.

15. Удвоить наибольшийэлемент массива Х(m) и напечатать измененный массив.

16. Вывести ненулевыеэлементы массива Х(m) и их произведение.

17. Найти сумму иколичество нечетных по значению элементов массива Х(m).

18. Образовать массив Тиз ненулевых элементов массива Х(m). Затем вывестимассив Т и количество элементов в нем.

19. В массиве Т(m) заменить нулевые элементы наибольшим элементом.

20. В массиве Х(m) найти сумму и количество элементов между первым ипоследним нулевым элементами.

21. Поменять местаминаибольший и наименьший элементы массива Т(m).

22. В массиве Х(m) найти общее число элементов до первого и после последнегонулевых элементов.

23. Сколько элементов вмассиве Х(m) после второго нулевого элемента.

24. Из элементовмассивов Х(m) и У(m) образоватьмассив

    Н(Х1, У1, Х2, У2,...,Х(m), У(m) из 2m элементов.

25. Округлить элементымассива Х(m) до ближайшего целого.

26. Из элементовмассивов Х(m), У(k) образоватьмассив

     Н((Х1, Х2, Х3,...,Хm, У1, У2, У3,..., Уk)   из m+kэлементов.

27. Найти номер второгонулевого элемента массива Х(m).

28. Найти номерпредпоследнего нулевого элемента массива Х(m).

29. Переставить элементымассива Х(m)  в обратном порядке, т.е. Хm,...,X2, Х1.

30. В массиве Х(m) найти число элементов между первым и вторым нулевыми элементами.

31. Сколько в массиве Т(m) элементов, меньших суммы всех элементов?

32. В массиве Т(m) нулевые элементы заменить суммой всех элементов.

33. Образуют лиарифметическую или геометрическую прогрессию элементы массива Х(m) ?

34. В массиве Т(m) заменить элементы с четными номерами суммой элементов снечетными номерами.

35. Найти расстояние Рмежду массивами А(k) и В(k) поформуле:

     Р2-(А1-В1)2+(А2-В2)2+...+(Ак-Вк)2.

36. В массив Р записатьсначала отрицательные элементы массива Х(k). затемположительные.

37. В массиве Х(k) найти сумму элементов и их количество до первой переменызнака.

38. Из элементов массиваХ(k), попадающих в отрезок [A,B],составить массив М и вывести его.

39. На плоскости ХОУданы k точек массивами координат Х(k),Y(k). Образовать массив номеров точек вне I четверти.

40. Образовать массив Нномеров нулевых элементов массива Х(k).

41. В одномерном массивес четным количеством элементов (2*N) находятсякоординаты N точек плоскости. Они располагаются вследующем порядке: х1, у1, х2, у2, х3, у3 и т.д. Определить минимальный радиусокружности с центром в начале координат, которая содержит все точки, и номеранаиболее удаленных друг от друга точек.

42. В двумерном массиве N x M  содержатся М ординат Nграфиков функций в точках 1,2,3 ,..., М. Определить, пересекаются ли этиграфики в одной точке, и если да, то найти ее номер. Считать, что графики могутпересечься только в указанных точках.

43. В одномерном массивесодержится график движения электропроезда от Перми до Кунгура в виде:

    первый элемент- времядвижения до первой остановки;

    второй элемент- время стоянкина первой остановке;

    третий элемент- времядвижения до второй остановки;

    четвертый элемент- времястоянки на второй остановке;

    и так далее ....

    последний элемент- времядвижения от предпоследней остановки до Кунгура.

44. В одномерном массивехранятся результаты социологического опроса. Написать программу для подсчетаколичества результатов, отклоняющихся от среднего не более чем на 7%.

45. От острова Буяна доцарства славного Салтана месяц пути. Капитан корабля записывает в вахтенныйжурнал количества миль, пройденных за день. Написать программу, определяющую, вкакую десятидневку пройден большой путь.

46. В массиве хранятсяданные о температуре окружающего воздуха за месяц. Определить самую холоднуюдекаду месяц.

47. Рост студентов двухгрупп, в которых соответственно 23 и 25 человек, размещен в двух массивах.Требуется определить средний рост студентов каждой группы, а также количествостудентов в двух группах вместе, имеющих рост выше 180 см.

48. 20 покупателеймагазина оценивают качество товара оценками 3,4,5. Определить сколько процентовсоставляют покупатели, поставившие 5,4 и 3 в отдельности от общего числапокупателей, участвовавших в экспертизе товара.

49. В соревнованиипринимали участие команды трех классов по 6 человек в каждой. Результаты каждойкоманды занесены в определенный массив в виде баллов, которыми судьи оцениваликаждого участника. Определить команду- победителя.

50. Необходимопротестировать 15 абитуриентов для распределения их по группам для изученияиностранного языка: английский язык, французский язык, немецкий язык, начальноезнакомство с иностранным языком. Составьте программу, подсчитывающую количествоабитуриентов в каждой группе в зависимости от того, как ответил абитуриент навопрос о изучении иностранного языка в школе.

51. В течении январямесяца в доме не работала котельная, поэтому температура в квартирах быланепостоянной. Определить количество дней в течении которых жильцам посчастливилосьиметь температуру не ниже 15 градусов, а также вычислить среднюю температурувоздуха в квартирах за этот месяц. Для решения задачи использовать массив.

52. 18 учащихся сдавалинорму по метанию гранаты. Составьте программу, определяющую какой процентучащихся выполнил норму. Если известно, что норма 38 метров.

53. В каждый солнечныйдень улитка, сидящая на дереве, поднимается вверх на 2 см, а в каждый пасмурныйдень опускается вниз на 1 см. В начале наблюдений улитка находилась в 30 см. отземли. Дан массив из 30 элементов, содержащий сведения о том был ли деньсолнечным или пасмурным. Составьте программу определения места нахожденияулитки к концу 30 дня.

54. В день вашегорождения тетя положила на ваше имя в сбербанк вклад в размере 1000 рублей.Каждый год к вкладу добавляется S% годовых. Составьтепрограмму для вычисления:

а)через сколько лет вкладдостигнет R рублей?

б)какой размер вклада будет через15 лет после вложения?

  

Операторы графики 

 

        Современныекомпьютеры обладают превосходными графическими возможностями — у современныхмультимедийных ЭВМ возможен даже просмотр и редактирование видеофильмов. Графика ориентирована на построение простейших геометрических фигур и реализациюпростейших возможностей динамической графики.

          Для того чтобы работатьс графической информацией необходимо установить графический режим работыспециальным оператором и использовать соответствующие операторы:

1. SCREEN N- оператор включения графическогорежима, где N — номер режимаработы (0 — текстовый режим работы, от 1 до 13 — графические режимы работы)

2. PSET (X,Y) — оператор рисования точки скоординатами Х, У (0<= X<=XК  0<=Y<= YК, где ХК иУК — размер экрана в текущем режиме работы)

3. LINE (X1, Y1) — (X2, Y2) — операторрисования отрезка,

 где  (X1, Y1),(X2, Y2)- координаты концов отрезка, лежащих вдиагональных вершинах

   LINE (X1, Y1)- (X2, Y2),, B- оператор рисования

прямоугольника со

/>сторонами параллельными осям                                                             X2,Y2

координат, если вместо параметра B

используется BF,то прямоугольник будет закрашенный

                                                                                               

                                                                                                X1,Y1

4. CIRCLE (X,Y),R — оператор рисования окружности

CIRCLE (X,Y),R,,A,B — оператор рисования дуги от угла A доB против часовой стрелки, углыизмеряются в радианной мере ( см. диаграмму).

/> /> /> /> /> /> /> /> /> /> /> <td/> /> /> /> /> />

/> 

/>


5. PAINT (X, Y) — оператор окрашивает

замкнутую область, начиная отуказанной точки

          В основном работаем во второмграфическом режиме, который имеет следующие характеристики:

черно- белый экран,

размер по горизонтали 0<=X<=639,

по вертикали  0<=Y<=190.

/>/>Пример 1.Постройтетри точки, которые являются вершинами равнобедренного треугольника.

            CLS

            SCREEN 2

            PSET (100,100)

            PSET (200,100)

            PSET (150,200)

            END

Пример 2. Постройтеглавную и побочную диагонали экрана.

            CLS

            SCREEN 12

            FOR X=0 TO 639

            Y=-425/600*X+460

            PSET (X, Y)

            NEXT X

            END

Пример 3. Постройте n концентрических окружностей

            INPUTN

            SCREEN 2

            CLS

            FOR X=1 TO N

            R=1+3.14*(X -1)

            CIRCLE(315, 100) ,R,

            NEXTX

            END

Пример 4. Постройте  10окружностей, расположенным случайным образом, пользуясь функцией RND.

          CLS

          SCREEN2

          FORI=1 TO 10

          CIRCLE(RND(1) * 639, RND(1)*190), RND(1)*100,0,0.14

          NEXT I

          END 

             

Пример 5. Составить программу,изображающую окружность в закрашенном прямоугольнике

SCREEN 2

CLS

LINE (60, 30) — (180, 150),,B

CIRCLE (120, 90), 60

PAINT (61, 31)

PAINT (179, 149)

END

Задачи на построение изображений.

 Графики элементарных функций                  

   Все рисунки, которые до сих пор были нарисованы на экранах, составлялисьтолько из точек, отрезков прямых и дуг окружностей. Часто приходится винженерных расчетах строить на экране дисплея любую кривую, для которойсуществует аналитическая (записанная в виде формулы) зависимость междуабсциссой и ординатой каждой ее точки.

         Рассмотрим кривую,которая задана уравнением у=22+1. Это обыкновенная парабола, вершинакоторой лежит на единицу выше оси абсцисс.   Для построения параболы у=х2+1в требуемом интервале изменения переменной надо работать по меньшей мере вдвух  четвертях координатной плоскости.

     Чаще всего бывает нужнасистема координат с началом центра экрана (как на математической плоскости). Вэтом случае, установив начало координат в требуемой точке (х0, у0) на экране,можно координаты (х, у) произвольной точки кривой определять разностью(х-х0, у-у0). После этого в программе можно употреблять не только положительные,но и отрицательные значения.

     Рисунок получаетсямаленький, почти незаметный, поэтому увеличить масштаб изображения: надоувеличить рисунок по х и по у в 319 раз, так как графический экран имеетразмеры 640 на 480. Разделив 640 пополам, получим 320, т.е. от 0 до 319приходится на положительную и отрицательную оси абсцисс. На экране можнополучить ограниченное количество значений х, то все их легко перебрать с помощьюцикла: Начальное значение цикла х=1, конечное значение х=1, а шаг по х при 639значениях х на отрезке [-1,1]  получается равным 2/639или 1/319.

 

 Примеры решениязадач

Пример 1.Постройте графикфункции у=2х+4

screen 2

line(320,0)-(320,200)

line(0,100)-(640,100)

for x =-20 to 20

y= (2*x+4)*(-1)

pset(x+320,y+100)

next x

Пример 2. Постройте графикфункции у=х3.

screen 12

line(0,240)-(640,240),13

line(320,0)-(320,480),13

for x=-20 to 20step 0.01

y=x^3

pset(320+4*x,240+y),3

next

Пример 3. Решитеграфически систему уравнений и проверьте, есть ли общее решение:

    { у=х2

    { у=х+6

     Решение:

screen 12

line (320,500)-(320,10),9

line (0,100)-(620,100),9

for x=-10 to 10 step 0.01

y=-x^2

pset (320+4*x,160+y),10

next x

for x=-100 to 100 step .01

y=-6-x

pset (320+x,160+y),12

next x

line (320,10)-(300,50),9

line (320,10)-(340,50),9

Графикипересекаются т.е. общее решение есть.

 

Задачипо теме «Графики элементарных функций»

1. Постройте графикфункции у= 1/2х+3

2. Постройте графикфункции у=х2+4

3. Решите графическисистему уравнений и проверьте, есть ли общее решение:

     {у=х2+5

     {у=|x| 

4. Решите графическисистему уравнений и проверьте. есть ли общее решение:

  {у=х+2

  {у=|x|

5.Решитесистему уравнений и проверьте, есть ли общее решение:

{у=2-7/х

{у=-х+6

6.Решитеграфически систему уравнений и проверьте, есть ли общее решение:

{у=х3

{у=|x| 

7. Постройте графиктригонометрической функции у=сos(х).

8.Постройтеграфик тригонометрической функции у= 2+sin (x).

9.Постройтеграфик тригонометрических функций у=2+SIN(X/2).

10.Постройте график тригонометрической функции у= 1/2*COS (X)

11.Постройтеграфик тригонометрической функции  Y=TAN(X)

12.Постройтеграфик тригонометрической функции у=0,5*COS(X)-1

  

 

 

еще рефераты
Еще работы по информатике, программированию