IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Написание функций
predikat
сообщение 14.12.2004 22:23
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Я учусь на програмиста. До зачетов осталось мало, а проги все не здал.
Можете помочь?

6_2:

Написать программу, которая содержит функцию next без параметров,
которая читает из входящего файла первую букву, отличную от space,
и объявляет её своим значением. Использовать эту функцию для подсчёта
k - количества отличных от space букв текста, который заданый в
входящем файле, который заканчиваеться точкой.


6_8:

Написать программу, в которой описано функцию Sum(A,S1,S2),
которая вычисляет сумму тех элементов матрицы А, номера рядов и
столбцов которые принадлежат соответственно непустым множествам
S1 и S2.


ОЧЕНЬ ПРОШУ!!!

В следующий раз называй тему, как положено...

Сообщение отредактировано: volvo - 14.12.2004 22:28
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.12.2004 0:00
Сообщение #2


Гость






predikat
Вот первая (если у тебя тестовый файл состоит из нескольких строк, учти, что перенос строки - 2 символа (#10 и #13))...
Код

var
 f: text;

function next: char;
 var ch: char;
 begin
   repeat
     read(f, ch);
   until ch <> #32;
   next := ch
 end;


var
 ch: char;
 count: word;
begin
 assign(f, 'test99.txt');
 reset(f);

 count := 0;
 repeat
   ch := next; inc(count)
 until ch = '.';

 writeln('count = ', count);
 close(f);
end.
 К началу страницы 
+ Ответить 
predikat
сообщение 15.12.2004 0:53
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Вторую я постараюсь сделать сам. помогите пожалуйсто с этой:

9_22:

Написать программу, которая использует информацию в таблице
FAT и распечатывает список файлов корневого каталога диска C: в формате:
имя файла, тип, время и дата создания,
начальный кластер, размер и указанные атрибуты:
а) h;
б) s;
в) h и s;
г) r.
Сравнить полученные результаты с
результатами выполнения команды dir.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
predikat
сообщение 15.12.2004 1:47
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


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

program matrix;
uses crt;
type
     mas=array[1..9,1..9] of integer;
     s=set of 0..9;
var
     a:mas;
     summ,x,y,i,j:integer;
const
     s1:s=[2,3];
     s2:s=[1,3];
function Sum(A:mas; S1,S2:s):integer;
var
   i,j,ss:integer;
  begin
       ss:=0;
       for i:=1 to x do
       if i in S1 then
          for j:=1 to y do
             if j in S2 then
             ss:=ss+A[i,j];
             sum:=ss;
  end;
procedure form_mn(var s1:s; x:byte);
var k:byte;
   begin
     writeln('Закончите ввод нажатием 0');
     writeln('Введите ряды/столбцы от 1 до ',x);
     s1:=[];
        repeat
           writeln('Введите цифру <=',x);
           readln(k);
               if k<>0 then s1:=s1+[k];
               if (k<0) or (k>x) then writeln('Превышен диапозон');
        until (k=0);
   end;
procedure init_mas(var a:mas; x,y:byte);{x - Є®«ЁзҐбвў® бва®Є}
var
       i,j:byte;
   begin
       writeln('Введите элементы массива');
       for i :=1 to x do
          begin
            writeln('Введите элементы', i, ' строки');
            for j:=1 to y do  read(a[i,j]);
            readln;
          end;
   end;
procedure show_mas(a:mas; x,y:byte);
var
       i,j:byte;
   begin
      writeln('Массив ',x,'x',y);
      for i:=1 to x do
          begin
             for j:=1 to y do write(a[i,j]:4);
             writeln;
          end;
   end;
begin
clrscr;
    repeat
        writeln('‚Введите количество столбцов  x <=9');
        readln(x);
    until x<=9;
    repeat
        writeln('Введите количество рядков y <=9');
        readln(y);
    until y<=9;
    init_mas(a,x,y);
    show_mas(a,x,y);
    writeln('М Н О Ж Е С Т В О   Р Я Д О В');
    form_mn(s1,x);
    writeln('М Н О Ж Е С Т В О   С Т О Л Б Ц О В');
    form_mn(s2,y);
    summ:=sum(a,s1,s2);
    writeln('Сумма равна  ', summ);
    readln;
end.



:p2:

Сообщение отредактировано: predikat - 15.12.2004 20:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.12.2004 10:58
Сообщение #5


Гость






predikat
Программу надо давать в виде текста (используя теги [ code] и [ /code] без пробела)... Как ты думаешь, я сейчас буду набирать всю твою программу, чтобы ее проверить и добавить комментарии? И никто не будет...
 К началу страницы 
+ Ответить 
predikat
сообщение 15.12.2004 20:08
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 15.12.04 10:58)
predikat
Программу надо давать в виде текста (используя теги [ code] и [ /code] без пробела)... Как ты думаешь, я сейчас буду набирать всю твою программу, чтобы ее проверить и добавить комментарии? И никто не будет...

Извините, я пропарился. Я не знал что pas можно открывать txt.
Всё исправил. Прошу помощи. Особенно по 9_22!!!



Ещё очень прошу помочь написать отчеты для этих прог. ОЧЕНЬ:


Код
program students;
uses crt;
const
   n=5;
type                              
   parameters=record
      surname:string[25];
      group:string[4];
      mark:real;
   end;
var
   st:array[1..n] of parameters;
   j,i:integer;
   s:parameters;
begin
clrscr;
for i:=1 to n do
  begin
    write('Enter the surname of student: ');
    readln(st[i].surname);
    write('Enter the number of group: ');
    readln(st[i].group);
    write('Enter his average mark: ');
    readln(st[i].mark);
  end;
  begin
     for i:=1 to n-1 do
        for j:=i to n do
        if st[i].mark<st[j].mark then
           begin
              s:=st[i];
              st[i]:=st[j];
              st[j]:=s;
           end;
  end;
  writeln;
  writeln('your list...');
  writeln;
  for i:=1 to n do
  with st[i] do
     begin
       write('Surname: ',sruname,'Group: ',group,'Mark: ', mark:1:2);
       writeln;
     end;
  repeat until keypressed;
end.








Код
program text_file;
var
   f:text;
function
   next: char;
   var
      ch: char;
   begin
      repeat
         read(f,ch);
      until ch<> #32;
      next := ch
   end;
var
  ch: char;
  count: word;
begin
  assign(f, 'test99.txt');
  reset(f);
  count := 0;
  repeat
     ch:=next;
     inc(count)
  until ch = '.';
  writeln('count = ', count);
  close(f);
end.







Код
program modul;
uses of_modul;
var
    Sinp, Sout: String;
begin
    write('Enter the string: ');
    readLn(Sinp);
    Upstring(Sinp,Sout);
    Writeln('     Result: ', Sout)
end.
_______________________________
Unit of_modul;
Interface
Procedure UpString(s1: string; var s2: string);
Implementation
procedure upstring;
var
  i: integer;
  c: char;
begin
  s2:= '';
  for i:= 1 to Length(s1) do
     begin
     c:= s1[i];
     if (c>= 'a') and (c <= 'z') then
        c:= chr(ord('A')+ord(c)-ord('a'))
     end
  end;
end.


Сообщение отредактировано: predikat - 15.12.2004 20:57
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 24.07.2025 6:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"