Помощь - Поиск - Пользователи - Календарь
Полная версия: Написание функций
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
predikat
Я учусь на програмиста. До зачетов осталось мало, а проги все не здал.
Можете помочь?

6_2:

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


6_8:

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


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

В следующий раз называй тему, как положено...
volvo
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
Вторую я постараюсь сделать сам. помогите пожалуйсто с этой:

9_22:

Написать программу, которая использует информацию в таблице
FAT и распечатывает список файлов корневого каталога диска C: в формате:
имя файла, тип, время и дата создания,
начальный кластер, размер и указанные атрибуты:
а) h;
б) s;
в) h и s;
г) r.
Сравнить полученные результаты с
результатами выполнения команды dir.
predikat
Помогите пожалуйсто написать под эту программу коментарии.
Код

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:
volvo
predikat
Программу надо давать в виде текста (используя теги [ code] и [ /code] без пробела)... Как ты думаешь, я сейчас буду набирать всю твою программу, чтобы ее проверить и добавить комментарии? И никто не будет...
predikat
Цитата(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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.