Задача на одномерной массив




АСТРАХАНСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕКИЙ УНИВЕРСИТЕТ

 

КАФЕДРА АИУ

 

ОТЧЕТЫПО РАБОТАМ НА ТЕМУ:

«СТРОКИ И МАССИВЫ»

 

Выполнил: студент группы

ДИААБ_21/2 Сагиндыков Расул

Проверил: доц. Кокуев А.Г.

 

АСТРАХАНЬ

Первая задача по теме: «Строки»

Дана последовательность. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству:буквы слова упорядочены по алфавиту

 

 

НАЧАЛО
Ввод: t:TStringList; i,j,k:integer;
t:=TStringList.Create; t.DelimitedText:=Memo1.Text;//пусть слова отделены пробелами k:=0;  
if t[i]<>t[t.Count-1]  
i:=0
t.Count-2
I AAAAIQC2gziS/gAAAOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsB Ai0AFAAGAAgAAAAhADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsB Ai0AFAAGAAgAAAAhACHVke7lAQAA5gMAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1s UEsBAi0AFAAGAAgAAAAhAL8CVrbhAAAACwEAAA8AAAAAAAAAAAAAAAAAPwQAAGRycy9kb3ducmV2 LnhtbFBLBQYAAAAABAAEAPMAAABNBQAAAAA= " strokecolor="#4579b8 [3044]"/>

 

 

Begin j:=2;
UTF8copy(t[i],j,1)>UTF8Copy(t[i],j-1,1)
inc(j)
if j>UTF8length(t[i])
begin k:=1; Memo2.Lines.Add(t[i]);
if k=0
Showmessage('Нет слов не равных последнему символы которых расположены по алфавиту')
КОНЕЦ

 


Вторая задача по теме: «Строки»

Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой (;). Найдите те слова, которые начинаются и заканчиваются одной и той же буквой.

НАЧАЛО
Ввод: s, s1: string; n, i, k, f: byte;

 

begin Memo1.Clear; s:= InputBox('Введите последовательность слов, разделенных пробелами', 'Введите последовательность слов, разделенных пробелами', ''); s:= ' ' + s;{добавим пробел в начало для удобства} Memo1.Lines.Add('Слова с одинаковой первой и последней буквами:'); i:= 1; f:= 0;
While i <= length(s)
if (s[i] <> ' ') and ((s[i - 1] = ' ') or (i = 1))
begin k:= i;s1:= '';
while (s[k] <> ' ') and (k <= length(s))
begin s1:= s1 + s[k]; k:= k + 1;{идемвперед} end;

 

 

if s1[1] = s1[length(s1)]
i:= i + length(s1);{перепрыгиваем} end
else i:= i + 1;{если не слово, идем вперед}
if f = 0
Memo1.Lines.Add('Слов с одинаковой первой и последней буквами нет!'); end;
КОНЕЦ
begin f:= 1; Memo1.Lines.Add(s1); end;

 


Третья задача по теме: «Строки»

Заданный текст распечатать по строкам, понимая под строкой либо очередные 60 литер, если среди них нет запятой, либо часть текста до запятой включительно.

НАЧАЛО
Ввод: s:String; j:integer;
begin s:=Memo1.Text; Memo2.Clear;
While s<>''
begin j:=UTF8Pos(',',s);
I AAAAIQC2gziS/gAAAOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsB Ai0AFAAGAAgAAAAhADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsB Ai0AFAAGAAgAAAAhAE0pD+fmAQAA6QMAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1s UEsBAi0AFAAGAAgAAAAhACmaFmzgAAAACQEAAA8AAAAAAAAAAAAAAAAAQAQAAGRycy9kb3ducmV2 LnhtbFBLBQYAAAAABAAEAPMAAABNBQAAAAA= " strokecolor="#4579b8 [3044]"/>
if (j>60) or (j=0)
then j:=60; Memo2.Lines.Add(UTF8Copy(s,1,j)); UTF8Delete(s,1,j); end;
КОНЕЦ

 


Задача на одномерной массив

Дан одномерный массив B, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b[1], b[n+1], b[2], b[n+2],..., b[n], b[2n]. Помогите составить код.

 

 

НАЧАЛО
Ввод: b:array ofinteger;//динамический массив n,i,j,x:integer;
begin n:=strtoint(Edit1.Text);//вводим размер половины массива setlength(b,2*n); //выделяем память под весь массив Memo1.Clear;
for i:=0
to 2*n-1
begin b[i]:=i+1;//длянаглядности Memo1.Text:=Memo1.Text+inttostr(b[i]) + ' '; end;
for i:=0
to n-1
begin x:=b[n+i]; for j:=n+i downto 2*i+1 do b[j]:=b[j-1]; b[2*i+1]:=x; end;
for i:=0
to 2*n-1
Memo2.Text:=Memo2.Text+inttostr(b[i]) + ' '; end;
КОНЕЦ
Memo2.Clear;

 

 




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-03-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: