IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Closed TopicStart new topic
> ПАСКАЛЬ!!
Cheeees
сообщение December 18 2005, 17:51
Сообщение #1



2 разряд
Иконка группы

Группа: Пользователи
Сообщений: 81
Регистрация: 24.11.2005
Из: Лыткарино-МИФИ(Т1-14)
Пользователь №: 6
Реальное имя: Софья
Учебная группа: Т1-14



Помогите пожалуйста с информатикой! нужно к четвергу,к зачету сдать проги.Они в принципе не сложные,но их очень много, а я паскаль вообще не знаю,и сама все сделать не могу. Если есть время то напишите пожалуйста эти проги:
1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X.
2.(74) Написать программу , которая позволяла бы выводить на экран текст и обрабатывать нажатие клавиши Delete,то есть затирать символы в текущем положении курсора. Сделать возможным перемещение курсора стрелками по экрану.
3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0".
4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого.
5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке.


--------------------
Но нет, я не умер,
Я выстрелил в небо
Серебряной пулей,
Туда, где я не был...
Go to the top of the page
 
+Quote Post
Scorpion[MG]
сообщение December 18 2005, 18:56
Сообщение #2



Обладатель Нобелевской премии по ориентированию
Иконка группы

Группа: Админы сайта
Сообщений: 1087
Регистрация: 23.11.2005
Из: Москва, Чертаново
Пользователь №: 4
Skype: scorpion_mg
Реальное имя: Виктор
Учебная группа: выпускник!



я знаю алгоритм, но паскаль я уже забыл (последний раз писал прогу - три года назад)


--------------------
Go to the top of the page
 
+Quote Post
Cheeees
сообщение December 18 2005, 19:04
Сообщение #3



2 разряд
Иконка группы

Группа: Пользователи
Сообщений: 81
Регистрация: 24.11.2005
Из: Лыткарино-МИФИ(Т1-14)
Пользователь №: 6
Реальное имя: Софья
Учебная группа: Т1-14



но если не саму прогу,то хотя бы подскажите как это осуществить,в смысле какие там действия должны быть..


--------------------
Но нет, я не умер,
Я выстрелил в небо
Серебряной пулей,
Туда, где я не был...
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 18 2005, 20:48
Сообщение #4



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X.

Условия задачи поставленны некорректно
Цитата
3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0".
Что подразумевается под системными клавишами?
Цитата
4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого.
Халява.
Функция для проверки на делимость числа a на число b:
Цитата

function division(a,b:integer):boolean;
begin
if (a mod ) = 0 then division:=true else division:=false;
end;

Цитата
5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке.
Функция для подсчета числа четных элементов:
Цитата

function get_count(m:array of integer;long:integer):integer;
var i,count:integer;
begin
count:=0;
for i:=0 to long-1 do
if(m[i] mod 2 = 0) then inc(count);
get_count:=count;
end;


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
ViNiaMin
сообщение December 18 2005, 22:12
Сообщение #5



Ученик дьявола
Иконка группы

Группа: Администраторы
Сообщений: 606
Регистрация: 11.12.2005
Из: Ад
Пользователь №: 22
Реальное имя: Владимир
Учебная группа: каф. 3



У меня в лекции за II семестр есть вариант решения 2.(74) на Си
Логика вроде правильная, но не проверял


--------------------
Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер)
Life take away from people SO MUCH time!
The shortest distance between two points is under construction.
Go to the top of the page
 
+Quote Post
Cheeees
сообщение December 19 2005, 17:43
Сообщение #6



2 разряд
Иконка группы

Группа: Пользователи
Сообщений: 81
Регистрация: 24.11.2005
Из: Лыткарино-МИФИ(Т1-14)
Пользователь №: 6
Реальное имя: Софья
Учебная группа: Т1-14



Цитата(~~HellHounD~~ @ December 18 2005, 20:48) [snapback]1059[/snapback]

Условия задачи поставленны некорректно


Учловия полностью списаны с книжки слово в слово,такие какие они там были.Автора книжки не знаю,т.к. списывала задачи на инфе.

Цитата(~~HellHounD~~ @ December 18 2005, 20:48) [snapback]1059[/snapback]
Что подразумевается под системными клавишами?


клавиши F1-F12,Ctrl и кажется Alt.


--------------------
Но нет, я не умер,
Я выстрелил в небо
Серебряной пулей,
Туда, где я не был...
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 19 2005, 19:08
Сообщение #7



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
Учловия полностью списаны с книжки слово в слово,такие какие они там были.Автора книжки не знаю,т.к. списывала задачи на инфе.

Цитата
Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X.

Не учтен случай, когда есть элементы больше и меньше X, что с такими делать?


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
Cheeees
сообщение December 19 2005, 19:24
Сообщение #8



2 разряд
Иконка группы

Группа: Пользователи
Сообщений: 81
Регистрация: 24.11.2005
Из: Лыткарино-МИФИ(Т1-14)
Пользователь №: 6
Реальное имя: Софья
Учебная группа: Т1-14



Цитата(~~HellHounD~~ @ December 19 2005, 19:08) [snapback]1084[/snapback]

Не учтен случай, когда есть элементы больше и меньше X, что с такими делать?

ой да ,извините, не заметила...тогда а=0.


--------------------
Но нет, я не умер,
Я выстрелил в небо
Серебряной пулей,
Туда, где я не был...
Go to the top of the page
 
+Quote Post
TheBestMan
сообщение December 19 2005, 19:42
Сообщение #9



3 разряд
Иконка группы

Группа: Пользователи
Сообщений: 64
Регистрация: 1.12.2005
Пользователь №: 15



Блиин. А может еще мне поможете написать процедуру (на паскале) удаления из строки слов менее трех символов (разделенных пробелами, с учетом "," ".". Но можно и без этого). Финальную лабу чудом сдал, а со сторками разбираться не охота.
Go to the top of the page
 
+Quote Post
Skazitel
сообщение December 19 2005, 19:50
Сообщение #10



Человек будущее
Иконка группы

Группа: Пользователи
Сообщений: 3259
Регистрация: 22.11.2005
Из: Москва, Северное Чертаново
Пользователь №: 3
Реальное имя: Михаил Горячев
Учебная группа: К7-222



Первую кинул в Асю.

Цитата(TheBestMan @ December 19 2005, 19:42) [snapback]1091[/snapback]

а со сторками разбираться не охота.


Вот это плохо. Соне 25 прог просто не написать, хотя... + На сколько я знаю, Софья во всём разбирается, так что изволь.


--------------------
Идеала нельзя достичь...
Но к нему можно бесконечно стремиться...


Жёг, жгу и буду жечь...


Go to the top of the page
 
+Quote Post
ViNiaMin
сообщение December 19 2005, 20:12
Сообщение #11



Ученик дьявола
Иконка группы

Группа: Администраторы
Сообщений: 606
Регистрация: 11.12.2005
Из: Ад
Пользователь №: 22
Реальное имя: Владимир
Учебная группа: каф. 3



А в 2.(74) задаче откуда берётся текст?
Он многострочный?
Как из неё надо сделать выход?


--------------------
Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер)
Life take away from people SO MUCH time!
The shortest distance between two points is under construction.
Go to the top of the page
 
+Quote Post
TheBestMan
сообщение December 19 2005, 20:59
Сообщение #12



3 разряд
Иконка группы

Группа: Пользователи
Сообщений: 64
Регистрация: 1.12.2005
Пользователь №: 15



Тогдаа изъяснюсь по другому, чтобы меня не считали ленивый человеком: завтра последний шанс сдать лабы по лаб. раб. по инф-ки, а тем не менее усиленно не допираю до того как делать программу. Притом очень давно допираю. Хотя очень старался..
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 19 2005, 21:28
Сообщение #13



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Раньше, чем завтра, заняться написанием прог не смогу, так что пишите подробное задание, может что и успею написать.


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
ViNiaMin
сообщение December 19 2005, 22:18
Сообщение #14



Ученик дьявола
Иконка группы

Группа: Администраторы
Сообщений: 606
Регистрация: 11.12.2005
Из: Ад
Пользователь №: 22
Реальное имя: Владимир
Учебная группа: каф. 3



Вот вариант реализации задачи 2(74) для одной строки
http://mephi.web-vnm.by.ru/StrEdit.html


--------------------
Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер)
Life take away from people SO MUCH time!
The shortest distance between two points is under construction.
Go to the top of the page
 
+Quote Post
TheBestMan
сообщение December 19 2005, 23:43
Сообщение #15



3 разряд
Иконка группы

Группа: Пользователи
Сообщений: 64
Регистрация: 1.12.2005
Пользователь №: 15



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

Буду надеяться, т.к. у меня завтра только зачет первой парой а сдача лабы после четвертой и я в инсте буду находиться целый день. Так что буду нервно думать и бегать в электронный читальный зал....

Сообщение отредактировал TheBestMan - December 19 2005, 23:46
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 24 2005, 19:51
Сообщение #16



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X.

Код

uses crt;
var
  m:array[1..100,1..100]of integer;
  var n,x:integer;
function a(n,x,i:integer):integer;
var j,ret:integer;
begin
  ret:=1;
  for j:=1 to n do
    if m[i,j]>x then ret:=0;
  a:=ret;
end;
procedure create_m(n:integer);
var i,j:integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      m[i,j]:=random(100);
end;
procedure print_m(n:integer);
var i,j:integer;
begin
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          write(m[i,j],',');
        end;
      writeln;
    end;
end;
procedure print_stat(n,x:integer);
var i:integer;
begin
  for i:=1 to n do
    begin
      writeln('a(',i,')=',a(n,x,i));
    end;
end;
begin
  randomize;
  write('Input N (0<N<101):');
  readln(n);;
  write('Input X:');
  readln(x);
  create_m(n);
  print_m(n);
  print_stat(n,x);
  readkey;
end.


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 24 2005, 20:05
Сообщение #17



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0".

Код
uses crt;
var
  k1,k2:char;
begin
  clrscr;
  repeat
    k1:=readkey;
    if k1=#0 then
      begin
        k2:=readkey;
        gotoxy(1,1);
        writeln('   ');
        gotoxy(1,1);
        writeln(ord(k2):3);
      end else
      begin
        gotoxy(1,1);
        writeln('   ');
        gotoxy(1,1);
        writeln(ord(k1):3);
      end;
  until k1='0';
end.

Из системных считает только F1-F10, сильно сомневаюсь, что в Паскале можно отследить нажатие ctrl, alt, F11 и F12 средствами встроенных функций без использования ассемблера.


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 24 2005, 20:47
Сообщение #18



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
2.(74) Написать программу , которая позволяла бы выводить на экран текст и обрабатывать нажатие клавиши Delete,то есть затирать символы в текущем положении курсора. Сделать возможным перемещение курсора стрелками по экрану.

Код
uses crt;
var
  k1,k2:char;
  x,y:integer;
begin
  clrscr;
  x:=1;
  y:=1;
  gotoxy(x,y);
  repeat
    k1:=readkey;
    if k1=#0 then
      begin
        k2:=readkey;
        case k2 of
        #72:begin
              dec(y);
              if y=0 then y:=24;
              gotoxy(x,y);
            end;
        #75:begin
              dec(x);
              if x=0 then
                begin
                  x:=80;
                  dec(y);
                  if y=0 then y:=24;
                end;
              gotoxy(x,y);
            end;
        #77:begin
              inc(x);
              if x=80 then
                begin
                  x:=1;
                  inc(y);
                  if y=25 then y:=1;
                end;
              gotoxy(x,y);
            end;
        #80:begin
              inc(y);
              if y=25 then y:=1;
              gotoxy(x,y);
            end;
        #83:begin
              write(' ');
              gotoxy(x,y);
            end;
        end;
      end else
      begin
        if (ord(k1)>31)then
          begin
            write(k1);
            inc(x);
            if x>80 then
              begin
                x:=x-80;
                inc(y);
                if y=25 then
                  begin
                    y:=1;
                  end;
              end;
          end;
        case k1 of
          #13:begin
                x:=1;
                inc(y);
                if y=25 then
                  begin
                    y:=1;
                  end;
              end;
          #8:begin
               dec(x);
               if x=0 then
                 begin
                   x:=80;
                   dec(y);
                   if y=0 then y:=24;
                 end;
               gotoxy(x,y);
               write(' ');
             end;
        end;
        gotoxy(x,y);
      end;
  until k1=#27;
end.



Остальное будет после 22:00.


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 24 2005, 22:11
Сообщение #19



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого.

Код
uses crt;
var
  x,i:integer;
function delit(x,d:integer):boolean;
begin
  if x mod d = 0 then delit:=true
  else delit:=false;
end;
begin
  clrscr;
  write('Input X:');
  readln(x);
  writeln('Spisok deliteley:');
  for i:=1 to x do
    begin
      if delit(x,i)then write(i,', ');
    end;
  readkey;
end.



--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post
~~HellHounD~~
сообщение December 24 2005, 22:23
Сообщение #20



Жутко ленивый.
Иконка группы

Группа: Администраторы
Сообщений: 2661
Регистрация: 22.11.2005
Из: Москва, Марьино
Пользователь №: 1
Skype: dudnikov.v
Реальное имя: Владимир



Цитата
5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке.

Код
uses crt;
const n=13;
var
  i,j:integer;
  m:array[1..n,1..n]of integer;
function get_chet(i:integer):integer;
var
  count,j:integer;
begin
  count:=0;
  for j:=1 to n do
    if m[i,j] mod 2 = 0 then inc(count);
  get_chet:=count;
end;
procedure create_m;
var i,j:integer;
begin
  for i:=1 to n do
    for j:=1 to n do
      m[i,j]:=random(100);
end;
procedure print_m;
var i,j:integer;
begin
  for i:=1 to n do
    begin
      for j:=1 to n do
        write(m[i,j],', ');
      writeln('chet:',get_chet(i));
    end;
end;
function get_max_chet:integer;
var max_num:integer;
begin
  max_num:=1;
  for i:=2 to n do
    begin
      if get_chet(max_num)<get_chet(i) then max_num:=i;
    end;
  get_max_chet:=max_num;
end;
begin
  clrscr;
  randomize;
  create_m;
  print_m;
  i:=get_max_chet;

  writeln('Maximum chet: max chet line id=',i);
  for j:=1 to n do
    write(m[i,j],', ');
  writeln('chet:',get_chet(i));
  readkey;
end.


--------------------
Не говори мне что мне делать и я не скажу куда тебе идти.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




Текстовая версия Сейчас: 28th March 2024 - 17:03
Хотите такой же?