• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Вопрос про цикл

  • Автор темы Автор темы N@tali
  • Дата начала Дата начала

N@tali

Новые
Регистрация
2 Янв 2011
Сообщения
18
Реакции
0
Баллы
0
Вопрос про цикл

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

а мне надо чтобы только по первым буквам совпадали то есть по инициалам...
помогите пожалуйста с этим...всю программу мне не надо...

Код:
for I:=1 to 10 do
begin
s:=student[i].fam;
s1:=student[i].otc;
s2:=student[i].name;
if (s[1]=s1[1])and (s1[1]=s2[1])then
writeln('фамилия студента : ', student[I].fam);end;
end.
 
N@tali, надо сделать в цикле выборку первых букв в инициалах ... :)
 
пожалуйста сделайте мне.... выборка мне непонятно...вы можете поправить мой кусок кода..????
 
N@tali, извини я в другом языке работаю, но смысл сразу ясен,
по операторам, чёйто похожее, даже у Бейсика так же ... :)
 
:tehnari_ru_837: а кто нибудь может помочь???:tehnari_ru_837:
 
вот пожалуйста...
Код:
type anketa=record
fam: string[45];
otc: string[8];
name: string[50];
curs: 1..5;
grupp: string[3]
end;
var student: array [1..100] of anketa;
 I,z,z1,z2: integer;
 s,s1,s2:string;
begin
{последовательно вводим каждую запись}
 for I:=1 to 10 do
begin
writeln ('введите сведения о', I , '-м студенте');
writeln ('введите фамилию');
readln (student[I].fam);
writeln ('введите отчество');
readln (student[I].otc);
writeln ('введите имя');
readln(student[I].name);
writeln ('введите курс');
readln(student[I].curs);
writeln ('введите группу');
readln (student[I].grupp);
end;
for I:=1 to 10 do
begin
s:=student[i].fam;
s1:=student[i].otc;
s2:=student[i].name;
if (s[1]=s1[1])and (s1[1]=s2[1])then
writeln('фамилия студента : ', student[I].fam);end;
end.
 
Да... мистика. Я тут набросал тест-программку:
Код:
TYPE
 TTT=Record
     fam:String;
     name:String;
     otc:String;
    end;
VAR
 Student:Array[1..3] of TTT;
 s,s1,s2:String;
 i:byte;
Begin
 Student[1].fam:='Ivanov';
 Student[1].name:='Igor';
 Student[1].otc:='Isidorovich';

 Student[2].fam:='Petrova';
 Student[2].name:='Pelageya';
 Student[2].otc:='Porfiryevna';

 Student[3].fam:='Sidorov';
 Student[3].name:='Alexey';
 Student[3].otc:='Rodionovich';

 for i:=1 to 3 do
  begin
   s:=student[i].fam;
   s1:=student[i].otc;
   s2:=student[i].name;
   if (s[1]=s1[1]) and (s1[1]=s2[1]) then
    writeln('фамилия студента : ', student[I].fam);
  end;
 readln;
end.
так у меня четко выдает Ivanov и Petova.
Сейчас Вашу посмотрю.
 
мне нужно чтобы выдавал результат...
например:
Иванов Александр Петрович
Икаев Алексей Павлович

то есть чтобы первые буквы ФИО совпадали...
 
мне нужно чтобы выдавал результат...
например:
Иванов Александр Петрович
Икаев Алексей Павлович

то есть чтобы первые буквы ФИО совпадали...
Ах, вот что! Так у Вас же совсем иная проверка - на совпадения трех инициалов для каждого студента (напр. Петрова Прозерпина Порфирьевна).
Ладно, теперь вроде ясно. Это несколько сложнее. Попробую.
 
Спасибо большое...
 
и если тебе не трудно исправь пожалуйста ошибку... ругается на что то ... это у меня в паскале АВС.net

Описать класс «дом», содержащий сведения о количестве подъездов и этажей, и количестве квартир на этаже. Предусмотреть инициализацию с проверкой допустимости значений полей. Описать методы вычисления количества квартир в подъезде и в доме.

Код:
type
dom=class
private kv:integer;
publiс p; et:integer;
constuctor create(p1,kv1,et1);
begin p:=p1;et:=et1;
if et1>0 then et:=et1 else writeln ('неверное количество')
end;
function kp:integer;
function kd:integer;
begin
result:=p*et*kv;
end;
end;
dom.kp:integer;
begin
result:=et*kv;
end;
begin
var
a1:dom:=newdom(3,4,6);
writeln(a1.p,a1.kv:3,a1.et:3);
writeln(' количество квартир в подъезде');
writeln(a1.kp());
writeln(' количество квартир в доме')
writeln(a1,kd());
end.
 
Вот - сделал. И даже отладил. Получилось несколько громоздко, но уж что есть:
Код:
Const
 SS:String=('***');
 Nstud=10;
type
 anketa=record
  fam: string;
  name: string;
  otc: string;
  curs: 1..5;
  grupp: string[3]
 end;
var
 student: array [1..Nstud] of anketa;
 Initial: array [1..Nstud] of string[3];
 i,j,z,z1,z2: integer;
 s,s1,s2:string;
 b,b1,b2:boolean;
begin
{инициализируем массив Initial}
 for i:=1 to Nstud do
  Initial[i]:=SS;
{последовательно вводим каждую запись}
 for i:=1 to Nstud do
  begin
   writeln ('введите сведения о ', i , '-м студенте');
   writeln ('введите фамилию');
   readln (student[i].fam);
   Initial[i][1]:=student[i].fam[1];
   writeln ('введите имя');
   readln(student[i].name);
   Initial[i][2]:=student[i].name[1];
   writeln ('введите отчество');
   readln (student[i].otc);
   Initial[i][3]:=student[i].otc[1];
   writeln ('введите курс');
   readln(student[i].curs);
   writeln ('введите группу');
   readln (student[i].grupp);
  end;
  for i:=1 to Nstud-1 do
   begin
    writeln;
    b:=false;
    b1:=true;
    for j:=i-1 downto 1 do
     if Initial[j]=Initial[i] then b1:=false;
    if b1 then
     begin
      b2:=true;
      for j:=i+1 to Nstud do
       begin
        if Initial[j]=Initial[i] then b:=true;
        if b then
         begin
          if b2 then
           begin
            Writeln(student[i].fam,' ',student[i].name,' ',student[i].otc);
            Writeln(student[j].fam,' ',student[j].name,' ',student[j].otc);
            b2:=false;
           end
          else
            Writeln(student[j].fam,' ',student[j].name,' ',student[j].otc);
         end;
        b:=false;
       end;
     end;
   end;
 readln;
end.
А со второй задачкой, увы - помочь не смогу: ООП не занимаюсь, и в этих конструкторах-деструкторах не волоку.
 
спасибо огромное
 
Назад
Сверху