Var
MinInd=1,MaxInd=1,i:integer;
a:array;
for i:=1 to (длинна массива) do
if a[MaxInd]<a then MaxInd=i
else
if a[MinInd]>a then MinInd=i;
Пара задач, очень нужна помощь!
2.Обменять местами в одномерном массиве максимум и минимум, найденные среди элементов массива.
:facepalm:
1. Разбить строку по разделителю пробел, слеш... Вставить слова в массив, коллекцию ...Подсчитать длину коллекции, массива
2. а) Вызвать функцию поиска макс и минимум запомнить значения.Вызвать фукцию поиска ключа по значению.Ключу минимального значения присвоить максимальное значение и наоборот.
б)Крутить массив в цикле сравнивать значение по ключам если i>i+1 значит запоминаем ключ i Результат запомнить.Аналогично найти минимальное.Поменять значения у ключей.
Цитата:
Разбить строку по разделителю пробел, слеш... Вставить слова в массив, коллекцию ...Подсчитать длину коллекции, массива
Да не, задача спокойно решится без коллекций. Последовательный перебор символов и всё.
По поводу массива:
сперва ищешь максимум и минимум (полным просмотром):
Код:
Потом меняешь их местами.
Цитата:
Вызвать функцию поиска макс и минимум запомнить значения.Вызвать фукцию поиска ключа по значению.Ключу минимального значения присвоить максимальное значение и наоборот.
rafaelkyrdan
Это не Python!!! Не путай человека!
Друзья! Огромное спасибо за помощь, но из-за того, что я чайник в паскале, желательней поподробнее!) :confused:
Цитата:
но из-за того, что я чайник в паскале, желательней поподробнее
Не стесняйтесь, скажите прямо: "Я ничего не знаю и думать не хочу. Напишите за меня!".
Нет!!! Просто реально очень сложно с нуля почти воспринимать) Уже закопалась в учебной лит-ре и ничего дельного не нашла пока)
Цитата: 418ImATeapot
rafaelkyrdan
Это не Python!!! Не путай человека!
Свой ответ я начал со слов с Паскалем не знаком и предлагаю только решение, что то вроде алгоритма.
У тебя есть строка С. Тогда длинна этой строки обозначена как lenght(С). Ты можешь ее вывести на экран или поделить на ноль по своему усмотрению. Т. Е. lenght(С) - это как переменная, только присваивать нельзя.
Код:
var s: string;
BEGIN
read(s);
writeln(lenght(s));
END.
BEGIN
read(s);
writeln(lenght(s));
END.
С массивом я, кажется уже все разжевал.
Код:
Var
MinInd,MaxInd,i,buff:integer;
a:array[1..10] of integer;
BEGIN
for i:=1 to 10 do
read(a);
for i:=1 to 10 do
if a[MaxInd]<a then MaxInd:=i
else
if a[MinInd]>a then MinInd:=i;
buff:=a[MinInd];
a[MinInd]=a[MaxInd];
a[MaxInd]:=a[MinInd];
for i:=1 to 10 do
write(a);
END.
MinInd,MaxInd,i,buff:integer;
a:array[1..10] of integer;
BEGIN
for i:=1 to 10 do
read(a);
for i:=1 to 10 do
if a[MaxInd]<a then MaxInd:=i
else
if a[MinInd]>a then MinInd:=i;
buff:=a[MinInd];
a[MinInd]=a[MaxInd];
a[MaxInd]:=a[MinInd];
for i:=1 to 10 do
write(a);
END.
Популярно мне понравилось намного больше) Проблема с первой задачей немного не в этом, там же необходимо определить количество слов, а не символов, вот на этом и буксую. В любом случае, огромное спасибо за объяснения
В принципе:
Код:
var s: string;
i, count: integer;
state:byte;
BEGIN
read(s);
state:=0;
count:=1;
for i:=1 to length(s)-1 do
if s=' ' then begin
if state=1 then
begin
state:=0;
count:=count+1;
end
end else state:=1;
writeln(count);
END.
i, count: integer;
state:byte;
BEGIN
read(s);
state:=0;
count:=1;
for i:=1 to length(s)-1 do
if s=' ' then begin
if state=1 then
begin
state:=0;
count:=count+1;
end
end else state:=1;
writeln(count);
END.
ПС. Извиняюсь за "lenght". С инглишем у меня фигово, сам давно не пользуюсь.
Спасибо-спасибо, дальше разберусь,что к чему)