Решить задачу на C++
Albor Причём тут оптимизация. Это не оптимизация, просто не надо сразу писать корявый код. Вы же не считате оптимизацией то, что вы, наверное, не пишете сортировку пузырьком, а пишете, наверно, Algorithm::sort().
Вы меня не совсем поняли. Я это сказал к тому, что в данном случае не имеет значения какой оператор применяется, код от этого хуже не будет и не стоит забивать голову студентам-школьникам красиво-непонятными словами, им сейчас главное, чтобы программа вообще заработала. Согласен, что в случае, когда всё равно каким оператором пользоваться, предпочтение лучше отдать префиксному, но, кому надо, тот дойдёт до этого со временем, а кому не надо - тому по-барабану плохо он сразу пишет код или нет.
Бред. Альтернативой оптимизации является увеличение кэша, тактовой частоты и частоты глобальной шины. А если встаёт вопрос о наращивании оперативки, то программа всё равно вообще не сможет быть выполнена." писал(а):PS Один авторитетный программист в нашем городе как-то сказал, что с точки зрения заказчика дешевле добавить памяти себе в комп, чем платить программисту за оптимизацию кода (это было сказано в контексте экономии памяти).
Ещё больший бред. Даже если временный объект занимает 1 байт, это может быть важно, так как выделение памяти под такой объект и освобождение её при уничтожении объекта - дополнительные операции. Если они будут выполняться часто (даже в одном и том же физическом адресе), то это приведёт к снижению скорости счёта (не путать с быстродеёйтвием, быстродействие - это чило элементарных операций выполняемых в единицу времени, а скорость счёта - число пользвовательских задач, решаемых в единицу времени). Тогда лучше один раз создать временный объект размером гигабайта полтора. В цикле же с постфиксной формой временные объекты будут создаваться и уничтожаться столько раз, сколько раз выполняется тело цикла." писал(а):говорить о том, что одно хуже (конечно, если я правильно понял слово пессимизация) другого в контексте представленных задач, где операторы используются для типа в 4 байта считаю нестоящим акцентирования на этом внимания.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Лучше сразу правильно научиться, чтобы когда дойдёшь до понимания, не переучиваться." писал(а):Вы меня не совсем поняли. Я это сказал к тому, что в данном случае не имеет значения какой оператор применяется, код от этого хуже не будет и не стоит забивать голову студентам-школьникам красиво-непонятными словами, им сейчас главное, чтобы программа вообще заработала. Согласен, что в случае, когда всё равно каким оператором пользоваться, предпочтение лучше отдать префиксному, но, кому надо, тот дойдёт до этого со временем, а кому не надо - тому по-барабану плохо он сразу пишет код или нет.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Vsem privet.
Ja tut reshyl zadacku, pravda nevsegda poluciaju pravelnyj otvet i vsio nikak nemogu najti oshybku Mozet mogliby pomoc? Budu ocen' blagodaren.
Zadacka: Skolka slov v simvolnoj stroke sostoit iz dvuh simvolov(bukv)?
vot cto ja nareshal:
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include<string.h>
#include<stdio.h>
#include<iostream.h>
int main(int argc, char* argv[])
{
char sak[100];
gets(sak);
char *sep=" ,:;?!.";
char *zodis=strtok(sak,sep);
int n=strlen(zodis);
int i=0;
while(zodis!=NULL)
{
zodis=strtok(NULL,sep);
if(zodis==NULL) break;
n=strlen(zodis);
if(n==2)
{
i++ ;
}
}
cout<<"Siimboliu eilutei yra: "
<<i
<<" zodziu is 2eju skaitmenu.\n";
gets(sak);
return 0;
}
//---------------------------------------------------------------------------
Ja tut reshyl zadacku, pravda nevsegda poluciaju pravelnyj otvet i vsio nikak nemogu najti oshybku Mozet mogliby pomoc? Budu ocen' blagodaren.
Zadacka: Skolka slov v simvolnoj stroke sostoit iz dvuh simvolov(bukv)?
vot cto ja nareshal:
//---------------------------------------------------------------------------
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include<string.h>
#include<stdio.h>
#include<iostream.h>
int main(int argc, char* argv[])
{
char sak[100];
gets(sak);
char *sep=" ,:;?!.";
char *zodis=strtok(sak,sep);
int n=strlen(zodis);
int i=0;
while(zodis!=NULL)
{
zodis=strtok(NULL,sep);
if(zodis==NULL) break;
n=strlen(zodis);
if(n==2)
{
i++ ;
}
}
cout<<"Siimboliu eilutei yra: "
<<i
<<" zodziu is 2eju skaitmenu.\n";
gets(sak);
return 0;
}
//---------------------------------------------------------------------------
Если в начале строки идёт слово из 2х букв, то счётчик не увеличивается, поэтому не всегда работает правильно. Все вызовы strtok нужно внести в тело цикла. Условием цикла можно сделать просто true, всё равно внутри указатель проверяется - цикл закончится по break. Как организовать работу strtok с 0 в первом параметре додумай сам.
atavin-ta писал(а):Лучше сразу правильно научиться, чтобы когда дойдёшь до понимания, не переучиваться.
Ну, да. Сначала научился, а может быть потом пойму. Это, батенька, не научился, научился - это на всю жизнь.
Прошу о помощи
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции. (массив из 18 вещественных чисел)
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
Заранее спасибо!
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции. (массив из 18 вещественных чисел)
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
Заранее спасибо!
Нужна небольшая помощь по одномерному массиву. С++
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции.
Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
Заранее спасибо!
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции.
Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
Заранее спасибо!
" писал(а):Прошу о помощи
Задание: " вычислить максимальный элемент и поменять его местами с последним"
Ниже код. Нужна такая же, только с использованием функции. (массив из 18 вещественных чисел)
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a[18];int i,max=0,imax;
for(i=0;i<18;i++)a=StrToFloat(Memo1->Lines->Strings);
max=a[0];imax=0;
for(i=1;i<18;i++)
if(a>max){max=a;imax=i;}
a[imax]=a[17];
a[17]=max;
Memo2->Clear();
for(i=0;i<18;i++)Memo2->Lines->Add(FloatToStr(a));
}
Заранее спасибо!
Ответ на этот пост я дал в http://forum.developing.ru/showthread.php?t=16718
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".