Selamün Aleyküm;
İş yerlerinde çalışan veya ekiple geliştirilen projelerde çalışan yazılımcı arkadaşlara soruyorum. Bir iş yerinde proje için istenilen algoritma ne kadar sürede hazırlanmalı? Yani projede sizden bir bölümün algoritmasının hazırlanması ve kodlanması istenildiğinde o algoritmayı ne kadar sürede tamamlamanız gerekiyor? Bunun için sizden bir süre isteniyor mu? Algoritmayı geliştirmeniz için ne kadar süre harcıyorsunuz? Tabii ki de bunlar aslında göreceli kavramlar ama merak ettiğim şey basit algoritmalar (mesela girilen 12li AM/PM saat formatını 24lü saat formatına dönüştürme gibi) için bile uzun uzun, belki de saatlerce düşündüğünüz oluyor mu? Ben bir sitedeki bu saat dönüştürme algoritmasını hazırlıyordum ve gerçekten böyle basit bir algoritma için 2 - 2,5 saat düşündüm, nasıl yapayım diye. Aslında çok kolay ama aşırı gereksiz kod olmasın diye kısa yolları da düşündüm. Merak ettiğim iş yerlerinde daha zor algoritmalar istenecektir, bunları ne kadar sürede ve ne kadar efor sarfederek geliştiriyorsunuz? İş yeri bu algoritma için size süre tanıyor mu? Diyelim ki algoritmayı geliştiremedik, sonucu ne olur? İş yeri zarara girer mi? Bir de iyi düşünülmüş algoritmalar benzeri tanımlar yapılıyor, bir algoritmanın beğenilecek ve iyi olacak seviyede olmasına nasıl karar veriliyor?
Mesela şu 2 koddan hangisi neye göre daha iyidir?:
#include <iostream>
#include <string>
using namespace std;
std::string time_conversion(const std::string& time)
{
// We can parse time as "hh", ":", "mm", ":", "ss", "AM/PM"
std::string hh, mm, ss, format, format24hours("");
hh.assign(time, 0, 2);
mm.assign(time, 3, 2);
ss.assign(time, 6, 2);
format.assign(time, 8, 2);
int h = stoi(hh),
m = stoi(mm),
s = stoi(ss);
if (format == "AM")
{
if (0 <= h && h <= 12)
format24hours += (h < 12) ? ((h < 10) ? "0" : "") + std::to_string(h)
: ((h == 12) ? "0" : "") + std::to_string(h - 12);
format24hours += ":";
if (0 <= m && m <= 59)
format24hours += ((m < 10) ? "0" : "") + std::to_string(m);
format24hours += ":";
if (0 <= s && s <= 59)
format24hours += ((s < 10) ? "0" : "") + std::to_string(s);
}
else if (format == "PM")
{
if (0 <= h && h <= 12)
format24hours += std::to_string((h + 12 >= 24) ? (h % 24) : h + 12);
format24hours += ":";
if (0 <= m && m <= 59)
format24hours += ((m < 10) ? "0" : "") + std::to_string(m);
format24hours += ":";
if (0 <= s && s <= 59)
format24hours += ((s < 10) ? "0" : "") + std::to_string(s);
}
return format24hours;
}
int main()
{
std::string time;
cin >> time;
std::string result(time_conversion(time));
cout << result << endl;
return 0;
}
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string s;
string h;
int hr;
cin>>s;
hr = ((s[0]-'0')*10)+(s[1]-'0');
if(s[8]=='P'&&s[9]=='M'&& hr ==12) cout<<to_string(hr);
else if(s[8]=='P'&&s[9]=='M') cout<<to_string(hr+12);
else if(s[8]=='A'&&s[9]=='M'&&hr==12) cout<<"00";
else cout<< s[0]<<s[1];
for(int i =2;i<8;i++)
cout<<s[i];
cout<<endl;
return 0;
}
Teşekkürler.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]