Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Типичные экзаменационные задачи

Автор: Clane 9.01.2003 3:26

1.Дана символьная строка и натуральное число N. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить длину слова, стоящего на N-ом месте и вывести все слова, состоящие из такого же количества символов, что и найденное слово. Если N больше количества слов в предложении, то вывести соответствующее сообщение.
2.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Найти самое длинное симметричное слово.
3.Дана символьная строка и символ. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов в строке, оканчивающихся на заданный символ.
4.Даны две символьные строки. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Вывести слова, которые встречаются в обеих строках.
5.При решении задач применять процедуры и функции.
Дан массив целых чисел (п=15), заполненный случайным образом числами из промежутка (-20,50).
1.Удалить из него все элементы, в которых есть цифра 5.
2.Вставить число К после всех элементов, кратных своему номеру (К вводить с клавиатуры).
3.Поменять местами первый положительный и последний отрицательный элементы.
6.При решении задач применять процедуры и функции.
Дан массив целых чисел (п=20), заполненный случайным образом числами из промежутка (-45,95).
1.Удалить из него все элементы, кратные 7 и принадлежащие промежутку [a, b] (a и b вводить с клавиатуры).
2.Вставить число К между всеми соседними элементами, которые образуют пару элементов с одинаковыми знаками (К вводить с клавиатуры).
3.Переставить в обратном порядке часть массива между элементами с номерами К1 и К2, включая их. Сделать проверку корректности ввода К1 и К2, если ввод неправильный, то ничего не делать..

Автор: Romario 9.01.2003 7:25

Привет, всем!
Короче срочно нужны ответы на следующие вопросы у меня 1 день! Как можно подробнее. Спасибо!

Цитата
1.      PASKAL. Основные понятия языка. Алфавит, выражения.
2.      PASCAL. Структура описания программы.
3.      PASKAL. Операторы присваивания, ввода, вывода.
4.      PASKAL. Простые типы данных.
5.      PASKAL. Описание переменных, констант и типов.
6.      PASCAL. Оператор условного перехода.
7.      PASKAL. Оператор выбора (варианта).
8.      PASKAL. Оператор безусловного перехода на метку.
9.      PASKAL. Операторы цикла. Оператор с предусловием.
10.      PASKAL. Операторы цикла. Оператор с постусловием.
11.      PASKAL. Операторы цикла. Оператор цикла с параметром.
12.      PASKAL. Структурированные типы данных. Тип массив (одномерный).
13.      PASKAL. Структурированные типы данных. Тип массив (двумерный).
14.      PASKAL. Подпрограммы процедуры.
15.      PASCAL. Формальные и фактические параметры.
16.      PASCAL. Подпрограммы функции.
17.      PASKAL. Структурированные типы данных. Тип файл. Запись в файл.
18.      PASKAL. Структурированные типы данных. Тип файл. Чтение из файла.
19.      PASCAL. Текстовые файлы. Процедуры работы с ними.
20.      PASKAL. Строковый тип данных. Операции со строками.
21.      Структура программного обеспечения компьютера.
22.      MS-DOS. Понятие файла. Каталоги и подкаталоги. Путь к файлу. Операции с каталогами.
23.      MS-DOS. Понятие файла. Каталоги и подкаталоги. Путь к файлу. Операции с файлами.
24.      Операционная система компьютера. Основные функции и загрузка операционной системы.
25.      Устройства ввода и вывода информации.
26.      Основные устройства аппаратной части информационной системы и их функциональное назначение.
27.      Операционная система WINDOWS. Работа с файлами и каталогами.
28.      Подготовка дисков к работе. Форматирование дисков.
29.      ОС Windows. Работа с дисками. Логические и физические дефекты. Программы по обслуживанию дисков: проверка дисков, дефрагментация.
30.      Запоминающие устройства и их основные характеристики. Единицы емкости запоминающих устройств.
31.      Операционная система WINDOWS. Меню “ПУСК”.
32.      Внешние запоминающие устройства
33.      Архивация. Программы – архиваторы. Примеры.
34.      Операционная система WINDOWS. Создание ярлыков.
35.      Вирусы и антивирусные программы.
36.      Операционная система WINDOWS. Панель управления.
37.      Файлы и каталоги. Имена, расширения, атрибуты.
38.      Командные файлы. Назначение, создание. Примеры.
39.      Основная память персонального компьютера.
40.      Операционная система WINDOWS. Утилита быстрого поиска. Программа Проводник.


Как вы заметили вопросы тут не только по Паскалю... так что извиняйте, время поджимает :-/

Автор: Ivs 9.01.2003 21:22

To Clane:
N1:

Код

program Clane_N_1;
uses crt;
var
  t,s:string;
  n:byte;
  i:integer;
  k:integer;
  d:integer;
  b:boolean;
begin
  ClrScr;
  Write('Input string -> '); Readln(s);
  Write('Input N -> ');Readln(n);
  i:=1;b:=False;
  k:=0;
  while i<=length(s) do
  begin
     d:=0;
     while (i<=length(s)) and (s[i]<>' ') do begin inc(d); inc(i); end;
     while s[i]=' ' do i:=i+1;
     k:=k+1;
     if k=n then begin b:=True; break; end;
  end;
  if b then writeln('Symbols: ',d)
     else writeln('No correct data!');
  writeln('Word: ');
  i:=1;
  k:=0;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if d=length(t) then writeln(t);
     i:=i+1;
  end;
  readln;
end.

N2:
Код

program Clane_N_2;
uses crt;
var
  t,s,longSim :string;
  max         :integer;
  i           :integer;

function Simmetric(ss:string):boolean;
var  k,j:integer;
begin
     Simmetric:=True;
     k:=length(ss) div 2;
     for j:=1 to k do
      if ss[j]<>ss[length(ss)-j+1] then begin Simmetric:=false;break;end;
end;

begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1; max:=0;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if Simmetric(t) then
      if length(t)>max then
      begin
         max:=length(t);
         longSim:=t;
      end;
     while s[i]=' ' do i:=i+1;
  end;
  writeln('Very long simmetric word: ',longSim);
  readln;
end.

N3:
Код

program Clane_N_3;
uses crt;
var
  t,s :string;
  ch  :char;
  i,k :integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input char -> ');  readln(ch);
  i:=1;k:=0;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if t[length(t)]=ch then k:=k+1;
     while s[i]=' ' do i:=i+1;
  end;
  writeln('OutPut: ',k);
  readln;
end.

Автор: Ivs 9.01.2003 21:24

To Romario:
Ты что не сможешь рассказать про ПУСК или создание ярлыков  ;D :-[

Автор: Romario 10.01.2003 3:24

Ivs - Тока я тя умоляю не уходи, давай хоть расскажи про Паскалевские вопросы... ;D У меня через 12 часов экзамен, хоть что-то надо знать :-[

Автор: Romario 10.01.2003 3:33

Ну дак как? :-[

Автор: Ivs 10.01.2003 3:36

Алфавит языка TP включает буквы, цифры,шестнадцатеричные цифры,специальные символы, пробелы и зарезервированные слова.
Буквы-это буквы латинского алфавита от a до z и от A до Z, а также знак подчеркивания _

Цифры- арабские цифры от 0 до 9

Специальные символы TP это символы:
+ - * / = , ' . : ; < > [ ] () {} ^ @ $ #
К специальным символам относятся также следующие пары символов :
<> <=  >= := (* *) (. .)
В программах эти символы низя разделять пробелами!
Ну там еще про зарезервированные слова немного расскажи..

Автор: Ivs 10.01.2003 3:40

Структура описания программы :

Program  {Название программы}

Uses      {Подключение unit'ов}

Const   {Объявляются разные константы}

Label   {Определяются метки}

Type  {Объявляются пользовательские типы}

Var   {Место для переменных}

Begin  {Основные операторы}
End.

Автор: Ivs 10.01.2003 3:44

Операторы присваивания :

" := "
Пример
A:=B {в А теперь значение B}

Пример:

Обен двух переменных значениями:

c:=a;
a:=b;
b:=c;

Оператор вывода WriteLn(input,'что выводить')
где input - имя файла куда будет осуществляться вывод

ReadLn(input,'что вводить');
-----------------------------------

Автор: AlaRic 10.01.2003 3:45

Цитата
10. PASKAL. Операторы цикла. Оператор с постусловием.

Оператор имеет вид:
repeat stat until exp;
здесь вначале выполняется stat, а затем вычисляется логическое значение exp.Процесс продолжается пока значение exp=ложь, в противном случае цикл прекращается.

Автор: Romario 10.01.2003 3:46

Ура! smile.gif Ivs, а аси нет у тебя, так бы проще было...

Автор: AlaRic 10.01.2003 3:50

Цитата
9. PASKAL. Операторы цикла. Оператор с предусловием.

Оператор имеет вид:
while exp do stat;
Вначале вычисляется логическое значение exp, если это значение истинно то выполняется оператор stat, затем exp проверяется опять.Цикл заканчивается когда exp=ложь.
пример:
while c < 10 do begin
write('равно', c);
writeln;
c:=c+2;
end;

Автор: Romario 10.01.2003 3:52

Сразу встречный вопрос: что значат эти символы, для чего они в Паскале?

^ @ $ #

Автор: Ivs 10.01.2003 3:56

Простые типы данных

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

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

Pred(x)- функция возвращает предыдущее значение порядкового типа.

Succ(x)- возвращает следующее значение порядкового типа, которое соответствует порядковому номеру ORD(x)+1 т.е
ORD(Succ(x))=ORD(x)-1;

Назови еще там целые типы и перичисли:
Byte
ShortInt
Word
Integer
LongInt
--------------
И Вещественных:
Real
Double
extended
comp
--------------

Автор: Ivs 10.01.2003 4:01

^ - для объявления типизированного указателя (вы наверное еще такого не проходили?)
@ -для присвоения переменной ссылочного типа некоторое значение;
$ - ставиться перед 16-ичными числами
#N - что бы вывести ASCII символ с номером N

Автор: AlaRic 10.01.2003 4:02

Цитата
11. PASKAL. Операторы цикла. Оператор цикла с параметром.

Еще называют цикл со счетчиком!Есть 2 разновидности:
1)  for i:=exp1 to exp2 do stat;
при выполнении сначала вычисляется exp1 затем вычисляется значение exp2 далее пробегаются все значения от exp1 до exp2.Когда значение exp1>exp2 цикл не выполняется.
2)for i:=exp1 downto exp2 do stat;
аналогичен первому только в нем переменная i не увеличивается, а уменьшается на 1.
пример:
c:=0;
for i:=1 to 5 do
begin
c:=c+sqr(i);
i:=i+2;
end;

Автор: Ivs 10.01.2003 4:05

Цитата
8. PASKAL. Оператор безусловного перехода на метку.  

GOTO Metka {Без комментариев!!}

Автор: Ivs 10.01.2003 4:07

Цитата
Еще называют цикл со счетчиком!Есть 2 разновидности:
1)  for i:=exp1 to exp2 do stat;
при выполнении сначала вычисляется exp1 затем вычисляется значение exp2 далее пробегаются все значения от exp1 до exp2.Когда значение exp1>exp2 цикл не выполняется.
2)for i:=exp1 downto exp2 do stat;
аналогичен первому только в нем переменная i не увеличивается, а уменьшается на 1.
пример:
c:=0;
for i:=1 to 5 do
begin
c:=c+sqr(i);
i:=i+2;
end;


Количетво итераций цикла (те сколько раз выполнится) считается по формуле:
I:=exp2-exp1+1

Автор: AlaRic 10.01.2003 4:10

Цитата
15. PASCAL. Формальные и фактические параметры.  

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

Автор: Romario 10.01.2003 4:12

Это всё?

Автор: AlaRic 10.01.2003 4:12

Цитата
Количетво итераций цикла (те сколько раз выполнится) считается по формуле:
I:=exp2-exp1+1

Спасибо ivs.Я просто спешу!  ;)

Автор: AlaRic 10.01.2003 4:13

Romario: чувак ты когда врубишь асю?  ;)

Автор: Ivs 10.01.2003 4:14

Цитата
12. PASKAL. Структурированные типы данных. Тип массив (одномерный).

Структурированных типов надо знать 4:
1. Массивы
2. Записи
3. Множества
4. Файлы
Цитата
12. PASKAL. Структурированные типы данных. Тип массив (одномерный).

Описание типа массива задается следующим образом:
<имя типа> = ARRAY [<сп.инд.типов>] oF <тип>
Пример
 a,b:array[1..10] of integer;

Автор: Ivs 10.01.2003 4:16

Цитата
Спасибо ivs.Я просто спешу!  ;)

да ладно, AlaRic, это всево лишь легкое дополнение, вдруг его препод спросит!  ;D

Автор: Ivs 10.01.2003 4:23

Цитата
13. PASKAL. Структурированные типы данных. Тип массив (двумерный).

type
  mat=array [0..5] of array [-2..2] of byte;
 такую запись можно заменить более компактной:
type
  mat=array [0..5,-2..2] of byte;
Глубина вложенности типов произвольная.

Пример:

var
  a:array[1..2,1..2] of byte;
begin
  a[1,1]:=1;
  a[2,2]:=2;
  a[3,3]:=3;
  a[4,4]:=4;
end.
то в памяти последовательно друг за другом будут расположены байты со значениями 1,3,2,4.

Автор: AlaRic 10.01.2003 4:25

Цитата
16. PASCAL. Подпрограммы функции.

Описание имеет вид:
function name (argum):type;
здесь  type-это описывает значения;
name-имя ф-ии;
argum-содержит переменные...
В ф-ии тоже должен присуствовать begin и end но после end идет точка с запятой.

Автор: AlaRic 10.01.2003 4:43

Строковой тип описывается словом string.
Допустимые значения - строки символов.
пример описания:
var i:string[3] где [3]-это установка max значения строки....поэтому при присваивании i:='1234' получится '123'.

Операции:
1)конкатенация(сложение строк):
q1:='12';
q2:=q1+'3'  >>> получится что q2='123'!!

функция Length(k) - определение длины аргумента k cтрокового типа!
процедура Delit(a,b,c)-удаление С символов(кол-во) в строковой переменной A начиная с позиции B!!!
функция Copy(a,b,c)-копирование С символов строки А начиная с позиции B!!!
Не думаю что понадобяться еще какие-то!!!

Автор: AlaRic 10.01.2003 5:12

Цитата
22. MS-DOS. Понятие файла. Каталоги и подкаталоги. Путь к файлу. Операции с каталогами.

файл - поименнованая область на диске или другом носителе информации
каталог - специальное место на диске, содержащее имена файлов, сведения о размере файлов и т.д.
подкаталог - каталог находящийся в другом каталоге
путь к файлу задается:1)указывается название диска 2)каталог 3)название файла 4)и расширение из 3 символов!!!
Операции:1)копирование каталога 2)перемещениепереименование каталога 3)создание каталога 4)удаление каталога...

Автор: Ivs 10.01.2003 13:27

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

AlaRic жму тебе руку!!!!!!  ;)

Автор: AlaRic 10.01.2003 20:30

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

Сервак под утро вообще сдох....мне пришлось ему в асю дописывать....
Цитата
AlaRic жму тебе руку!!!!!!  
А я тебе браток!  :)

Автор: Ivs 11.01.2003 3:57

to Clane:
N1 Mas:

Код

Program Mass;
uses crt;
const m=30;
var
  a:array[1..m] of integer;
  i,j:integer;
  n:integer;

function Faiv(a1:integer):boolean;
var bool:boolean;
   b   :integer;
begin
  bool:=false;
  a1:=abs(a1);
  while a1>1 do
  begin
     b:=a1 mod 10;
     a1:=a1 div 10;
     if b=5 then begin bool:=True;break;end;
  end;
  if bool then Faiv:=True else Faiv:=False;
end;

begin
  ClrScr;
  n:=15;
  for i:=1 to n do
  begin
     a[i]:=random(70)-19;
     write(a[i]:4);
  end;
  for i:=n downto 1 do
     if Faiv(a[i]) then
     begin
      for j:=i to n do a[j]:=a[j+1];
      n:=n-1;
     end;
  writeln;
  for i:=1 to n do write(a[i]:4);
  readln;
end.


N2:
Код

Program Clane_2;
uses crt;
const m=30;
var
  a:array[1..m] of integer;
  i,j:integer;
  n,k,l:integer;

begin
  ClrScr;
  Randomize;
  n:=15;
  for i:=1 to n do
  begin
     a[i]:=random(50)-19;
     write(a[i]:4);
  end;
  writeln;
  write('Input k -> ');readln(k);
  i:=1;l:=1;
  while i<=n do
  begin
     if a[i] mod l=0 then
     begin
      for j:=n+1 downto i+2 do a[j]:=a[j-1];
      a[i+1]:=k;
      n:=n+1;
      i:=i+1;
     end;
     i:=i+1;
     l:=l+1;
  end;
  for i:=1 to n do write(a[i]:4);
  readln;
end.


N3:
Код

Program Clane_3;
uses crt;
const n=15;
type massiv = array[1..n] of integer;
var
  a:massiv;
  i:integer;
  m:integer;

procedure Max_to_Min(a1:massiv);
var
  k,l,x:integer;
begin
  k:=1;l:=n;
  while a1[k]<=0 do k:=k+1;
  while a1[l]>=0 do l:=l-1;
  x:=a[k];
  a[k]:=a[l];
  a[l]:=x;
end;
begin
  ClrScr;
  Randomize;
  for i:=1 to n do
  begin
     a[i]:=random(50)-19;
     write(a[i]:4);
  end;
  Max_to_Min(a);
  writeln;
  for i:=1 to n do write(a[i]:4);
  readln;
end.

Автор: Romario 11.01.2003 7:48

Всем спасибо! ;)